«Вичерпний посібник» із заборонених символів файлів не працює в Windows, оскільки він зберігає назви файлів, а також символи. Так, такі символи як
*
"
?
і інші заборонені, але є нескінченна кількість імен, складених лише з дійсних символів, які заборонені. Наприклад, пробіли та крапки є дійсними символами файлів, але імена, що складаються лише з цих символів, заборонені.
Windows не розрізняє великі та малі символи, тому ви не можете створити папку з іменем, A
якщо така назва a
вже існує. Гірші, здавалося б, дозволені імена, такі як PRN
і CON
та багато інших, зарезервовані та заборонені. У Windows також є кілька обмежень по довжині; ім'я файлу, дійсне в одній папці, може стати недійсним, якщо його перенести в іншу папку. Правила
іменування файлів і папок
містяться в документах Microsoft.
Загалом, не можна використовувати створений користувачем текст для створення імен директорій Windows. Якщо ви хочете , щоб дозволити користувачам ім'я все , що вони хочуть, ви повинні створити безпечні імена , як A
, AB
, і A2
ін., Зберігати призначені для користувача згенеровані імена та їх еквіваленти в шляху файлу даних програми, а також виконувати відображення шляху в додатку.
Якщо ви абсолютно повинні дозволити створені користувачем імена папок, єдиний спосіб визначити, чи є вони недійсними, - це ловити винятки і вважати, що ім’я є невірним. Навіть це загрожує небезпекою, оскільки винятки, заборонені для забороненого доступу, офлайн-накопичувачів та місця на диску, збігаються з тими, які можуть бути викинуті за недійсні імена. Ви відкриваєте одну величезну банку, яка може нашкодити.
echo abc > "ab.;,=[1]"