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