Могут ли такие местоположения, как appDataLocation и tempLocation, иметь пробелы в пути?

Могут ли такие местоположения, как appDataLocation и tempLocation, иметь пробелы в пути?
C:\Users\username\AppData\Roaming
C:\Users\username\AppData\Local\Temp

Я пишу приложение для Windows, и мое приложение будет довольно часто использовать эти два расположения, указанные выше, и чтобы избежать сюрпризов, я хочу точно знать, разрешает ли Windows использовать пробелы в путях к этим расположениям, например:

C:\Users\user Name\AppData\Roaming
C:\Users\user Name\AppData\Local\Temp

Я просмотрел несколько документов Microsoft, но не смог найти эту конкретную информацию.

решение1

Конечно, могли, и не только из-за имени пользователя.

Во всех системах Windows 2000/XP эти два каталога располагались по адресу:

C:\Documents and Settings\User\Application Data
C:\Documents and Settings\User\Local Settings\Temp

(Я слышал слухи, что это название было выбрано намеренно, чтобысила(новые программы, принимающие длинные имена файлов на случай, если «C:\Program Files» окажется недостаточно подходящим решением.)

Хотя эти версии Windows сейчас в основном не поддерживаются, такие пути могут все еще оставаться в конфигурациях приложений, если та же система была напрямую обновлена ​​с 2000/XP до Vista/7, а оттуда до Win8/10. Они остаются допустимыми путями и в современных версиях, благодаря тому, что Windows создает скрытые символические ссылки, указывающие старые имена на новые.

В общем, хорошо написанная программа должнавсегдапредполагают, что любой путь может содержать пробелы, запятые, апострофы и другие забавные вещи. Они разрешены в путях с тех пор, как "C:\My Documents" вВиндовс 95– в 2021 году они должны стать базовым предположением, а не «сюрпризом»!

решение2

Ограничений на имя пользователя/имя учетной записи нет. Оно может содержать пробелы, и документация не видит необходимости упоминать об этом.

Например, см. пост Windows 10 — имя пользователя с пробелами и PATH, где имя пользователя было «Miha Šušteršič».

решение3

В имени могут быть пробелы.

Вот пример на моей машине.

В противном случае имена папок следует использовать точно так же, как они указаны в Windows (например, AppData без пробелов).

Имя пользователя с пробелами

Связанный контент