«Полное руководство» по запрещенным символам имени файла не будет работать в Windows, поскольку оно резервирует имена файлов и символы. Да, такие символы, как
*
"
?
и другие, запрещены, но существует бесконечное количество имен, состоящих только из допустимых символов, которые запрещены. Например, пробелы и точки являются допустимыми символами имени файла, но имена, состоящие только из этих символов, запрещены.
Windows не различает прописные и строчные буквы, поэтому вы не можете создать папку с именем, A
если она a
уже существует. Хуже того, вроде бы разрешенные имена, такие как PRN
и CON
многие другие, зарезервированы и не разрешены. Windows также имеет несколько ограничений по длине; имя файла, допустимое в одной папке, может стать недействительным при перемещении в другую папку. Правила
именования файлов и папок
приведены в документации Microsoft.
Как правило, вы не можете использовать пользовательский текст для создания имен каталогов Windows. Если вы хотите , чтобы позволить пользователям имя все , что они хотят, вы должны создать безопасные имена , как A
, AB
, и A2
др., Хранить пользовательские сгенерированные имена и их эквиваленты в пути файла данных приложения, а также выполнять отображение пути в приложении.
Если вам абсолютно необходимо разрешить сгенерированные пользователем имена папок, единственный способ определить, являются ли они недействительными, - это перехватить исключения и предположить, что имя недействительно. Даже это чревато опасностью, поскольку исключения, создаваемые для отказа в доступе, отключенных дисков и нехватки дискового пространства, пересекаются с теми, которые могут быть выброшены для недопустимых имен. Вы открываете одну огромную банку боли.
echo abc > "ab.;,=[1]"