Как создать имя папки или файла со специальными символами, такими как \ / : * ? " < > |

Как создать имя папки или файла со специальными символами, такими как \ / : * ? " < > |

Моя проблема заключается в том, что я не могу дать имя своей папке или файлу со специальными символами, такими как \ / : * ? " < > | в ОС на базе Windows. Для меня очень важно дать имя файлу/папке, которое содержит этот тип символов.

Я уже искал и ссылался на столько сайтов, для этой проблемы, но все безнадежно. Я также читал страницу поддержки Microsoft, они предлагают использовать другие символы. Вот ссылка,https://support.microsoft.com/en-us/kb/177506

Я уже пробовал кнопку Alt + ASCII-код этого типа специальных символов с цифровой клавиатуры, просто для примера переименуйте файл/папку и нажмите Alt+60 (для символов <). Все равно выдается сообщение, что имя файла не может содержать ни одного из следующих символов: \ / : * ? " < > |

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

решение1

Для меня очень важно именование файлов/папок, содержащих эти символы.

Это может быть важно для вас, но вам придется отпустить это и найти другой способ решения вашей проблемы.

Эти символы не допускаются к вызовам функций ОС Windows, обрабатывающих имена файлов.

Они специально не допускаются, поскольку имеют другое применение:

  • \- Зарезервировано для использования в качестве разделителя пути ипобегхарактер
  • /- Зарезервировано для использования в качестве разделителя пути
  • :- Зарезервировано для использования в качестве разделителя имени диска.
  • *и ?- Зарезервировано для использования в качествеподстановочный знакперсонажи
  • "- Зарезервировано для использованияцитироватьимена, содержащие пробелы
  • <, >и |- Зарезервировано для использования в качестве командыперенаправлениеоператоры

Конечно, вы можете создавать файлы с именами, содержащими эти символы, используя другую операционную систему (при условии, что эта операционная система может читать/записывать файловую систему Windows).

Однако вы не сможете ничего сделать с этими файлами с помощью каких-либо программ Windows, поскольку они не будут понимать имена файлов и будут выдавать ошибки.


Именование файлов, путей и пространств имен

Соглашения об именовании

Следующие основные правила позволяют приложениям создавать и обрабатывать допустимые имена файлов и каталогов независимо от файловой системы:

...

Используйте для имени любой символ текущей кодовой страницы, включая символы Unicode и символы расширенного набора символов (128–255), за исключением следующих:

  • Следующие зарезервированные символы:

    < (less than)
    > (greater than)
    : (colon)
    " (double quote)
    / (forward slash)
    \ (backslash)
    | (vertical bar or pipe)
    ? (question mark)
    * (asterisk)
    
  • Целое значение ноль, иногда называемое символом ASCII NUL.
  • Символы, целочисленные представления которых находятся в диапазоне от 1 до 31, за исключением альтернативных потоков данных, где эти символы разрешены. Для получения дополнительной информации о потоках файлов см. Потоки файлов.
  • Любой другой символ, не разрешенный целевой файловой системой.

ИсточникИменование файлов, путей и пространств имен


Но я все равно очень хочу это сделать.

Установитьcygwinи использовать touch.

Я не проверял все варианты, но следующие работают:

touch :
touch \|
touch \"
touch \>

Пример вывода:

DavidPostill@Hal /f/test/impossible
$ ll
total 0
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:03 '"'
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:02 :
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:02 '|'
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:07 '>'

Как видите, их нельзя использовать в Windows:

F:\test\impossible>dir
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test\impossible

10/08/2016  21:07    <DIR>          .
10/08/2016  21:07    <DIR>          ..
10/08/2016  21:03                 0 
10/08/2016  21:02                 0 
10/08/2016  21:07                 0 
10/08/2016  21:02                 0 
               4 File(s)              0 bytes
               2 Dir(s)  1,772,601,536,512 bytes free

введите описание изображения здесь

решение2

Создайте свой собственный набор шрифтов. Замените некоторые символы, которые вы не используете, изображениями зарезервированных символов.

решение3

В Windows нельзя создавать файлы с этими символами. Решения нет, эти символы запрещены Win32 API.

Win32 является подмножеством пространства имен POSIX и нечувствителен к регистру. Он использует все символы Unicode, за исключением: '"' '*' '/' ':' '<' '>' '?' '\' '|' NB Имена не могут заканчиваться точкой '.' или пробелом ''.

--http://dubeyko.com/development/FileSystems/NTFS/ntfsdoc.pdf

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