Какие символы разрешены в имени файла в операционной системе Windows

Обновлено: 23.11.2024

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

Хотя подавляющее большинство настольных компьютеров по-прежнему используют ОС Microsoft Windows или Macintosh, существует множество других операционных систем (и файловых систем), которые могут взаимодействовать с файлами в различных точках. Сотовые телефоны, ленточные накопители, сетевое оборудование, телевизоры и даже цифровые камеры сегодня поддерживают файловые системы.

Большинство современных файловых систем и операционных систем, в которых они используются, поддерживают гораздо более длинные имена файлов, чем персональные компьютеры, работающие под управлением Microsoft DOS и ранних версий Windows. Эти компьютеры использовали имя файла 8.3, которое позволяло восемь символов слева от точки и три символа справа, чтобы указать компьютеру, какое приложение использовать для его отображения. Однако по-прежнему можно столкнуться с проблемами, связанными с длиной имени файла.

Принятие правильных соглашений об именах файлов может помочь гарантировать, что файлы будут работать с различными операционными системами и форматами дисков, такими как Windows, Linux, Mac OS X и UNIX. Именование файлов также является важным фактором при передаче файлов через Интернет, когда может быть неочевидно, какая компьютерная платформа использовалась при первоначальном создании файлов.

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

Некоторые приложения и компьютерные скрипты могут не распознавать пробелы или иначе обрабатывать ваши файлы при использовании пробелов. Лучше всего заменять пробелы в именах файлов подчеркиванием (_) или дефисом (-). В приложении B бюллетеня NARA 2015-04 указано, что пробелы в именах файлов запрещены. Веб-среды переводят пробелы и отображают их как «%20». Например, «Имя файла.doc» будет отображаться в URL-адресе как «Файл%20Name.doc», где?. Это изменение может привести к путанице при определении фактического имени файла.

Следует избегать пунктуации, символов или специальных символов (точки, запятые, круглые скобки, амперсанд, звездочки и т. д.). Некоторые из этих символов используются в операционных системах для выполнения определенных задач, например для обозначения уровней папок в продуктах Microsoft и операционных системах Mac. Точки используются для идентификации форматов файлов, таких как .jpg и .doc.

Имена файлов FAT всегда сохраняются на диске в верхнем регистре и отображаются в верхнем или нижнем регистре в зависимости от параметров, выбранных в TCC.

Длинные имена файлов

VFAT , FAT32 и NTFS позволяют использовать длинные имена файлов, содержащие не более 255 символов, включая пробелы и другие символы, которые не разрешены в имени системного файла FAT, но исключая некоторые знаки препинания, разрешенные в именах файлов FAT. Подробную информацию о разрешенных символах см. в документации по операционной системе. Если вы используете имена файлов, которые содержат точку с запятой [ ; ], см. Подстановочные знаки, чтобы узнать, как избежать проблем с интерпретацией этих имен файлов в рамках TCC .

Номера LFN сохраняются и отображаются точно так, как вы их ввели, и не переводятся автоматически в верхний или нижний регистр. Например, вы можете создать файл с именем MYFILE, myfile или MyFile, и каждое имя будет храниться в каталоге так, как вы его вводите. Однако регистр игнорируется при поиске имен файлов, поэтому у вас не может быть двух файлов, имена которых различаются только регистром (т. е. все три имени, приведенные выше, будут относиться к одному и тому же файлу). Это поведение иногда описывается как «сохранение регистра, но без учета регистра», поскольку информация о деле сохраняется, но не влияет на доступ к файлам. Это отличается от файловых систем в стиле Linux, которые чувствительны к регистру и позволяют AA , Aa , aA и aa быть четырьмя разными именами файлов.

При указании имени файла, совместимого с LFN, которое включает пробелы или другие символы, которые либо не допускаются в имени FAT, либо могут иметь синтаксическое значение для TCC, вы должны заключать имя в двойные кавычки в командной строке. . Например, предположим, что у вас есть файл с именем LET3 на томе FAT, и вы хотите скопировать его в каталог LETTERS на диске F: тома LFN и присвоить ему имя Letter To Sara. Для этого используйте любую из этих команд:

копировать let3 f:\LETTERS\"Письмо Саре"

скопировать let3 "f:\LETTERS\Letter To Sara"

Файловые системы LFN не определяют явным образом "расширение" для имен файлов, несовместимых с FAT. Однако по соглашению все символы после последней точки в имени файла рассматриваются как расширение. Например, имя файла "Письмо Саре" не имеет расширения, тогда как имя "Письмо.то.Саре" имеет расширение Сара .

Дополнительная информация о дисковых файлах и файловых системах доступна в разделах Диски и тома , Файловые системы , Каталоги и подкаталоги , Атрибуты файлов и Отметки времени .

В настоящее время я использую для большинства своих файлов имя ГГММДД-ИМЯ+СТРАНИЦА. NAME содержит пробелы, преобразованные в символы подчеркивания.

Я бы хотел использовать формат даты ГГГГ-ММ-ДД, но не знаю, как отделить его от имени. A - выглядело бы странно, если бы имя начиналось с цифры. Если я использую _ , это конфликтует с символом подчеркивания, представляющим пробел.

Какие символы достаточно безопасны в именах файлов, которые здесь подойдут? Я работаю в Linux, но могу делиться файлами с другими людьми (Windows 7, Mac OS X).

- символ безопасен для использования в Windows 7.. возможно, другие современные операционные системы делают то же самое.. вы можете использовать символ минус для разделения..

4 ответа 4

Обзор:

  • Windows: все, кроме управляющих символов ASCII и \/:*?"<>|
  • Linux, OS-X: все, кроме null или /

На всех платформах лучше избегать непечатаемых символов, таких как управляющие символы ASCII.

Окна

В Windows Проводник Windows не позволяет использовать управляющие символы или \/:*?"<>| Вы можете использовать пробелы. Если вы используете пробелы, вам часто придется заключать имя файла в кавычки при использовании из командной строки (но Насколько мне известно, приложения с графическим интерфейсом не затрагиваются). Файловая система Windows, такая как NTFS, по-видимому, хранит кодировку с именем файла, но стандартом является UTF-16.

Некоторые части Windows чувствительны к регистру, другие части не чувствительны к регистру. В файловой системе Windows NTFS легко создать разные имена файлов, такие как «Ab» и «ab». Эти имена относятся к отдельным файлам, которые содержат отдельное содержимое. Однако, несмотря на то, что командная строка Windows с удовольствием отобразит оба файла с помощью dir , вы не сможете легко получить доступ к одному из них или управлять им с помощью таких команд, как type . См. ниже.

Линукс, OS-X

Я полагаю, что только в Linux и OS-X / из печатного набора ASCII запрещен. Некоторые символы (метасимволы оболочки, такие как *?! ) вызовут проблемы в командных строках и потребуют, чтобы имя файла было соответствующим образом заключено в кавычки или экранировано.

Файловые системы Linux, такие как ext2, ext3, не зависят от набора символов (я думаю, они просто обрабатывают его более или менее как поток байтов - запрещены только нули и /). Это означает, что вы можете хранить имена файлов в кодировке UTF-8. Я считаю, что оболочка или другое приложение должны знать, какую кодировку использовать для правильного преобразования имени файла для отображения или обработки.

Заключение

Поэтому вы, вероятно, могли бы безопасно использовать что-то вроде ✣ (если бы это не было так сложно напечатать)

Чувствительность к регистру в Windows

Обратите внимание, что мы не можем ввести содержимое второго файла, вместо этого команда Windows type возвращает содержимое файла Ab. Третий файл также будет отличаться от aB в Linux.

(Windows 10 NTFS).

В целом хороший ответ, но я бы воздержался от использования имен файлов в пробелах. Правильный побег от них во всех контекстах доставляет больше хлопот, чем пользы. Обратите внимание, что Microsoft перестала использовать пробел в именах системных каталогов. Если вам нужно указать границы слов в именах, отлично подойдет CamelCase.

"C:\Program files (x86)" все еще существует в Win8 - это не системный каталог? Я согласен с тем, что пробелы могут вызвать проблемы.

Да, но его можно переименовать во что угодно. Конечно, многие программы будут в бешенстве, если вы переименуете его в "]:\foobar", но Windows все равно обращается к нему как к "%programfiles(x86)%".

Здесь следует иметь в виду, что система Linux может рассматривать прописные и строчные буквы как разные, в то время как Windows считает их одинаковыми.

Хотя ответ RedGrittyBrick технически верен, проблема не только в безопасности: важно также удобство использования.Я думаю, что лучше задать вопрос "какие символы лучше использовать в имени файла".

Некоторые возможные рекомендации:

Это в основном оставляет вам:

которые всегда безопасны и не раздражают при использовании (если вы начинаете имя файла с буквенно-цифрового символа) :)

Квадратные скобки ( [] ) являются частью регулярных выражений и также имеют особое значение в оболочке. Но с ними не так уж и плохо работать, за исключением некоторых неприятных угловых случаев.

В zsh символы, которые могут интерпретироваться по-разному, включают []()^; , поэтому я думаю, что правильным ответом на самом деле может быть [0-9a-zA-Z.,_-] Запятая также может быть исключена только потому, что это странно видеть в имени файла, хотя я не могу вспомнить реальный случай, когда это вызовет проблемы.

Не думаю, что буду включать . в списке символов, которые «не раздражают в использовании». Очевидно, что есть вероятность неправильного истолкования как расширения и т. д.

Если вы собираетесь запретить использование пробелов, поскольку они могут быть интерпретированы оболочкой, вам необходимо запретить использование точки с запятой ';' также.

Alt-1. начальные заглавные буквы могут заменять пробелы: ГГММДД-ЧЧММ-FileName.ext или ГГММДД-ЧЧММ_FileName.ext

Минимальное количество символов для четкого отображения, которое автоматически сортируется с заполненными нулями для января-сентября (и с 1-го по 9-е число в месяц).

К персонажам в основном обращались другие люди, хотя я укажу на дополнительный аспект, который следует учитывать. Во-первых, я обращаюсь к выбору ГГММДД, который имеет две проблемы.

Первая проблема с ГГММДД заключается в том, что он не работает с историческими данными. Он будет сортировать 1997 год намного позже 2035 года, а не раньше. Является ли это проблемой, может зависеть от того, насколько широко вы хотите распространять формат.

Еще одна проблема с ГГММДД связана с зависимостью от календаря. Хотя григорианский календарь в настоящее время является самым популярным в мире, не все используют его или знают день в его справочнике. К счастью, григорианский год общеизвестен и принят даже теми, кто использует разные годы, но номенклатура месяца/дня может быть бессмысленной. Чтобы быть более переносимым, более переносимым является формат ГГГГДДД, где ДДД — день в году. Однако для тех из нас, кто пользуется григорианским календарем, это сложно, потому что обычно мы не знаем, какой день в году. Формат MMDD по-прежнему поддается сортировке, даже если он ничего не значит для человека, который сам может создать дату, например, 20221442 (год по григорианскому календарю, его месяц и день) или 20220047 (16 февраля по григорианскому календарю, 47-й день года), думая, что они соответствуют вашему формату.

В продолжение темы о том, насколько широко должен использоваться формат, необходимо рассмотреть символы, доступные по всему миру. Короткий тире '-' доступен везде (?), потому что это знак минус, используемый повсеместно. Подчеркивание — большая проблема, даже для тех, кто использует латиницу. Обычно они могут добраться до него так или иначе, но это не на каждой клавиатуре. В некоторых алфавитах подчеркивание является символом или модификатором символа, что вносит путаницу. Во многих персидских языках подчеркивание читается как кашида. Во многих алфавитах для того, для чего мы используем подчеркивание, использовали бы надчеркивание: что-то, что трудно набрать на нашей клавиатуре. На большинстве клавиатур для технических специалистов имеется простой латинский алфавит (иногда сбоку от клавиши), поэтому они могут набирать буквы. Но не всегда подчеркивание.

Поддерживаемые символы для имени файла: буквы, цифры, пробелы и ( ) _ - , .

*Обратите внимание, что длина имени файла не должна превышать 100 символов.

Если вы попытаетесь загрузить файл с недопустимым именем или типом файла, вы получите следующее сообщение об ошибке вместе с индикатором справа от вашего файла.

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

Поддерживаемые типы файлов

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

Формат Тип файла
TIF .tif< /td>
Adobe PDF .pdf

Форматы приложений:

< td>.xls
Формат Тип файла
Формат расширенного текста .rtf
Microsoft Word .doc
Microsoft Word 2007 или выше .docx
Microsoft Excel
Microsoft Excel 2007 или более поздней версии .xlsx
Microsoft Powerpoint .ppt
Microsoft Powerpoint 2007 или более поздней версии .pptx
Открыть Документ Office .odt
Открыть электронную таблицу Office .ods
Презентация Open Office .odp

Форматы растровых изображений

Формат Тип файла
BMP .bmp
GIF .jpg
JPG .jpg
PNG .jpg
TIF .tif

Форматы текстовых файлов

*Файл должен содержать одно из указанных выше расширений. Файлы, загруженные без расширения, не принимаются.

Читайте также: