Когда я пытаюсь сохранить файл, если я использую специальные символы в имени (например, двоеточие, вопросительный знак или восклицательный знак) в Windows, я получаю сообщение о том, что имя файла неверно.
Это почему?
windows
special-characters
user284989
источник
источник
Ответы:
Есть несколько символов, которые имеют особое значение для Windows (и для DOS, откуда изначально взято большинство символов)
из MSDN :
/
это переключатель (а также разделитель каталогов).\
является разделителем каталогов.:
обозначение привода*
и?
подстановочные знаки, используемые при поиске."
способ разрешить пробелы в параметрах.<
и>
перенаправление, которые позволяют вводу и выводу программы поступать и переходить к чему-либо, кроме экрана / клавиатуры.|
это канал, который позволяет использовать выходные данные одной программы в качестве входных данных для следующей.источник
\
?
*
и"
являются единственными, которые действительно необходимы в текущем синтаксисе, поскольку другие символы полезны только за пределами кавычек. Исключением является: который полезен только в качестве второго символа, который может быть объявлен вне закона, разрешив его в другом месте. Другими словами, нет имени файлаA:A letter's story.txt
, но нет проблемы с именем файлаSarah: My favorite cat.txt
<>"
зарезервированные символы подстановки. Windows использует их для реализации сложной семантики для DOS*?.
при переводе на нативный NT, который имеет простую семантику для*?.
. Шесть символов подстановки зарезервированы, потому что Windows реализует сопоставление с подстановочными знаками в самой файловой системе, то есть непосредственно вNtQueryDirectoryFile
системном вызове, без механизма экранирования. В Unix подстановочные знаки реализуются на уровне приложений, обычно с помощью оболочки, которая поддерживает их экранирование.:
обычно это зарезервировано в именах файлов, но не в путях к файлам. Он используется для имен устройств и в качестве разделителя для потоков файлов (например, «имя файла: имя потока: тип потока»). Кроме того , некоторые файловые системы , такие как VirtualBox разделяемой папки файловой системы позволяют:
,|
и управляющие символы ASCII (1-31) в именах файлов, но они защищены во всех файловых системах Microsoft, для файловой системы с именем трубы , за исключением.