При задании имени файла не допускается использование символов

Обновлено: 03.07.2024

Дело в том, что по «Соглашению об именованиях» эти символы и имена зарезервированы файловой системой для «внутренних» системных нужд, применять их пользователю запрещено.

Примечание. Применять для файлов и папок имена COM, COM10, COM11…, LPT, LPT10, LPT11… системой не возбраняется.

Имена файлов в FAT
В файловой системе FAT использован традиционный формат имен 8.3, имена файлов должны состоять из символов ASCII. Имя файла или каталога должно состоять не более чем из 8 символов, затем следует разделитель «.» (точка) и расширение длиной до 3 символов. Первым символом имени должна быть буква или цифра. При определении имени можно использовать все символы за исключением перечисленных ниже:
. «/ \ [ ]:; | = ,

Использование этих символов может привести к получению неожиданных результатов. Имя не должно содержать пробелов.

Соглашения именования в NTFS
Имена файлов могут состоять не более чем из 255 символов, включая любое расширение. В именах сохраняется регистр введенных символов, но сами имена не зависят от регистра. NTFS не различает имена в зависимости от регистра. В именах могут быть использованы любые символы за исключением указанных ниже:
? «/ \ ≤> * | :
В настоящее время из командной строки можно задать имя файла длиной не более 253 символов.

Можно ли обойти запреты файловой системы
Можно создать папки с зарезервированными именами с помощью Интерпретатора команд Windows, например:
— нажмите Пуск → Выполнить… → Запуск программы → cmd → OK;
— в открывшемся окне Интерпретатора команд после приглашения системы введите mkdir .\com1\ (Enter).

Системные папки
Также Windows не позволит переименовать или переместить системные папки, такие как «Documents and Settings» (в Vista — «Пользователи»), «Windows», «System32», «Program Files». Они необходимы для нормальной работы Windows (если каким-либо образом — не в среде Windows — их переименовать/переместить, то вы не сможете загрузить операционную систему).

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

Понятия «путь» и «имя файла»

Очень часто в компьютерной литературе используются термины «путь» и «имя файла» под разными значениями. Обычно под словом «путь» понимают адрес или расположение файла, т. е. диск, папка и подпапки в которых расположен файл. Однако Microsoft и другие считают, что в путь к файлу входит не только его расположение но и само имя файла. А некоторые подразумевают под словом «путь» только имена файла и папок, в которых он расположен, без указания диска. Некоторые пользователи полагают, что «имя файла» не включает расширение. В данной статье расширение всегда является частью имени файла. На примере ниже синим цветом выделен путь к файлу, а красным имя файла.
X:\папка\подпапка\ файл.расширение

Зарезервированные символы и имена

Ограничения на длины имен файлов и путей

Существуют ограничения на длину имени файла и на длину пути. Абсолютное ограничение длины имени файла вместе включая путь к нему равно 260 символам. Этот предел называют термином MAX_PATH. На самом же деле на практике пределы для имен еще меньше из-за ряда других ограничений. Например, каждая строка на конце должна содержать так называемый нулевой символ, который обозначает конец строки. Несмотря на то, что маркер конца строки не отображается, он учитывается как отдельный символ при подсчете длины, а значит остается 259 символов доступных для имени файла и пути к нему. Первые три символа в пути используются для обозначения диска (например, C:\). Это уменьшает предел для имен папок, подпапок и файла до 256 символов.

На имя объекта (папки или файла) наложено ограничение длины 255 символов. Этот предел действителен только, если объект не расположен внутри папки. Так как при расположении объекта внутри папки, сумма длин всех папок в которых он расположен, разделителей и имени объекта ограничена 256 символами, то предел длины самого имени объекта меньше 255 символов.

При подборе названий для файлов используйте только латинские буквы, цифры, символы «-» и «_».

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

  1. Файл корректно отображается при просмотре через FTP-клиент, но не открывается на сайте;
  2. Имя файла может «побиться» (стать нечитабельным) при загрузке с локального компьютера на сервер или при копировании файла с сервера на сервер;
  3. Файл некорректно индексируется поисковыми системами;
  4. Файл не открывается на компьютере пользователя и т.д.

2. Только строчные буквы

Используйте только строчные буквы для названий файлов. В Windows название «Новый Документ.docx» значит то же самое, что и «новый документ.docx», но это относится не ко всем операционным системам. Например, некоторые Unix-системы проявляют чувствительность к регистру.

3. Не используйте пробел

Если название файла состоит больше, чем из одного слова, никогда не используйте пробел для отделения слов. Используйте в качестве разделителя символ «-» или «_».

Иконка формата JPG

Хорошо icon-skype.jpg Плохо image 1.jpg

4. Осмысленные названия на английском языке

Указывайте для файлов осмысленные названия на английском языке, избегайте названий «по умолчанию» (Новая папка 2) и использования транслита.

Когда пользователь собирается перейти по ссылке, он нередко обращает внимание на её адрес. Если имя страницы или файла описывает содержимое, пользователь охотнее перейдёт по ссылке.

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

Мне нужно создать файл с именем файла, например :>? , возможно ли это как-то? Windows это останавливает.

У каждого ограниченного символа есть другое значение или использование, поэтому, если имя файла или папки действительно содержит их, это может привести к возникновению Bad Things ™. Не возражаете, если я спрошу, почему вы пытаетесь это сделать? @ DMA57361, когда я делал это несколько лет назад, я проверял некоторые вещи. Если я правильно помню, результаты были забавными, но я не помню ничего особенно плохого . Самое большее, я просто не мог получить к ним доступ. (Хотя я полагаю, что это может вызвать проблемы, если, например, у вас есть файлы с именами a , b и вы a>b type a>b @moorecast, когда я делал это несколько лет назад, я создавал файлы / каталоги с фиктивными именами, а затем использовал редактор дисков, чтобы вручную устанавливать имена в записях каталога. Конечно, это было на томе FAT32, так что это было очень легко. Это было бы немного сложнее на томе NTFS. Mind if I ask why you are trying to do this? Может быть, реализовать (плохую) защиту от копирования ? «Мне нужно создать файл с именем файла, например:>?» - Сомневаюсь, что тебе нужно это сделать.

К сожалению, вы не можете использовать зарезервированные символы при создании папок или файлов, поскольку они являются частью системных функций.

То, что я рекомендую вам сделать, это просмотреть Character Map приложение - вы можете запустить и набрать charmap .

отсюда вы можете найти альтернативные символы, которые выглядят одинаково, например:

(скопируйте и вставьте их, вы увидите, что они разные)

Вместо косой черты / - вы можете использовать символ деления ∕

Вместо двоеточия : - вы можете использовать модификатор буквы двоеточия ꞉

альтернативный текст

@Arjan - только через командную строку .. даже тогда вы можете использовать клавишу табуляции для автозаполнения. Я использовал этот трюк для определенных ситуаций, например, когда мне нужно поставить вопрос в имени файла ( почему Microsoft оставил вопросительный знак зарезервированным? ఠ_ఠ) К сожалению, мне пришлось прекратить использовать любые символы не ASCII, потому что они вызывают проблемы с такими вещами, как программы дефрагментации, которые по какой-то причине кажутся неспособными перемещать файлы с символами Unicode в именах. ಠ Если подумать, этот ответ на самом деле тоже не отвечает на вопрос. Есть ответы ниже , что делать , так что это тоже должно быть просто комментарий.

Вы можете загрузиться с диска Linux (например, Knoppix ) и смонтировать раздел NTFS.

Linux имеет гораздо меньше ограничений на имена файлов, и позволит вам создавать такие имена (я пробовал).

Некоторые операционные системы запрещают отображение определенных символов в именах файлов: (Ресурс из Википедии )

\ backslash Также используется как разделитель компонентов имени пути в MS-DOS, OS / 2 и Windows (нет разницы между косой чертой и обратной косой чертой); разрешено в Unix имени файла

? знак вопроса, используемый в качестве подстановочного знака в Unix, Windows и AmigaOS; отмечает один символ Разрешено в Unix имена файлов

* звездочка используется в качестве подстановочного знака в Unix, MS-DOS, RT-11, VMS и Windows. Отмечает любую последовательность символов (Unix, Windows, более поздние версии MS-DOS) или любую последовательность символов в базовом имени или расширении (таким образом, « . » В ранних версиях MS-DOS означает «все файлы». Допускается в именах файлов Unix ,

: двоеточие используется для определения точки монтирования / диска в Windows; используется для определения виртуального устройства или физического устройства, такого как накопитель на AmigaOS, RT-11 и VMS; используется в качестве разделителя пути в классической Mac OS. Удваивается после имени в VMS, указывает имя узла DECnet (эквивалентно имени хоста NetBIOS (сеть Windows), которому предшествует "\".)

| вертикальная черта обозначает программную конвейеризацию в Unix и Windows; разрешено в именах файлов Unix

"кавычка используется для обозначения начала и конца имен файлов, содержащих пробелы в Windows

<меньше, чем используется для перенаправления ввода, разрешено в именах файлов Unix

> больше, чем используется для перенаправления вывода, разрешено в именах файлов Unix

, период разрешен, но последнее вхождение будет интерпретироваться как разделитель расширений в VMS, MS-DOS и Windows. В других ОС, обычно рассматриваемых как часть имени файла, допускается более одной полной остановки.

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