Многие пользователи сталкивались с тем, что при попытке создать или сохранить файл они видели сообщение о том, что это «недопустимое имя файла», если там присутствуют некоторые символы или было введено неподходящее имя.
Дело в том, что в операционной системе Windows имеются запрещенные имена файлов. Не все имена файлов и папок разрешены, потому что существуют недопустимые символы в имени файла или папки.
Содержание:
- Недопустимые имена файлов Windows
- Запрещенные символы в имени файла или папки
- Как создать папку с недопустимым именем
- Как удалить папку с недопустимым именем файла — 3 способа
- Выводы статьи
Есть способы, чтобы обойти эти ограничения, но вам потребуется приложить определенные усилия, чтобы удалить такие элементы из системы.
Обычно, операционные системы Microsoft, например, Windows 7, Windows 8.1, Windows 10, Windows 11, не привередливы, когда речь идет об именах файлов и папок. Хотя там есть ограничение на максимальное количество символов в имени файла или папки, чтобы соответствовать файловой системе NTFS (New Technology File System).
Операционная система Windows принимает почти все имена для файлов и каталогов. Однако некоторые заголовки для объектов файловой системы применить невозможно при создании обычным образом.
Например, если вы попытаетесь назвать новую или существующую папку именем «CON», то появится сообщение об ошибке «Указано неверное имя устройства».
В данном случае, это имя зарезервировано для сокращенного наименования консоли — «console». Это связано с тем, что некоторые имена файлов или папок не могут быть назначены, потому что в Windows запрещенные имена файлов не разрешено использовать.
Во времена DOS, когда в Windows не было графического пользовательского интерфейса (GUI), определенные термины были зарезервированы для операционной системы и устройств. В настоящий момент времени в этом нет особой необходимости, и различные блокировки имен остаются пережитками прошлого.
В этом руководстве мы рассмотрим, какие символы запрещены в имени файла. Из инструкций этой статьи вы узнаете, что делать, если на компьютере имеются запрещенные символы в имени файла Windows и эти объекты не удаляются с ПК.
Недопустимые имена файлов Windows
В операционной системе Windows запрещены имена не только «CON», но и «NUL», «AUX» некоторые другие, которые зарезервированы для имен устройств. Верхний и нижний регистр символов в имени не имеют значения, поэтому «con» или «CON» одинаково не разрешены в качестве обозначения файла или папки.
Не используйте подобные имена с расширением имени файла, потому что в этом случае расширение не учитывается. Операционная система воспринимает файлы «CON» и «con.txt» как одно и тоже.
Список недопустимых имен в Windows:
- CON, PRN, AUX, NUL, COM0, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT0, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9.
Не называйте папки и файлы такими именами, чтобы избежать конфликтов с различными устройствами.
Запрещенные символы в имени файла или папки
Помимо собственно имени файла, в операционной системе Windows имеются запрещенные символы в имени файла или папки. Кроме того, нельзя забывать, что пользователи могут открывать и просматривать файлы в других операционных системах (macOS, Linux, Android), поэтому лучше избегать некоторых символов в именах файлов.
В ОС Windows в имени файла запрещено использование следующих символов в файловой системе NTFS (таблица):
< | знак меньше, чем |
> | знак больше, чем |
: | двоеточие |
« | двойные кавычки |
/ | косая черта (прямой слеш) |
\ | обратная косая черта (обратный слеш) |
| | вертикальная черта |
? | вопросительный знак |
* | звездочка |
В файловой системе FAT имеются следующие запрещенные символы в имени файла (таблица):
. | точка |
« | двойные кавычки |
/ | косая черта (прямой слеш) |
\ | обратная косая черта (обратный слеш) |
[ | левая квадратная скобка |
] | правая квадратная скобка |
: | двоеточие |
; | точка с запятой |
| | вертикальная черта |
= | знак равенства |
, | запятая |
Помимо вышеперечисленных примеров лучше не использовать в именах файлов и папок следующие символы из-за ограничений Интернета или других файловых систем (таблица):
# | решетка |
% | процент |
& | амперсанд |
пробел | |
+ | плюс |
@ | символ «собака» |
Имена файлов не могут заканчиваться пробелом или точкой.
Как создать папку с недопустимым именем
Если вы хотите создать папку с названием, запрещенным в Windows, вы можете использовать обходной путь с командной строкой. Создавать подобные папки не рекомендуется из-за возможного конфликта устройств на компьютере.
Для примера, мы создадим папку с именем «CON» на локальном диске «C:».
Выполните следующие действия:
- В поле поиска Windows введите «cmd».
- Запустите командную строку от имени администратора.
- В окне интерпретатора командной строки введите предложенную команду, а потом нажмите на клавишу «Enter»:
md "\\.\C:\CON"
После выполнения команды в указанном расположении появится папка с именем «CON».
Подобная папка на компьютере довольно бесполезна, потому что эту папку невозможно открыть в Windows 8.1 и Windows 10.
Кроме того, удалить папку с компьютера не получится простым способом, с помощью щелчка правой кнопкой мыши и выполнения команды контекстного меню «Удалить».
Другая ситуация наблюдается в последних версиях Windows 11. Операционная система не позволяет создать папку с именем «CON» и другими неподдерживаемыми именами, но у вас получится удалить этот каталог, созданный в командной строке, обычным способом (кроме папки с именем «NUL»). Вы можете открыть подобную папку и вложенные в нее файлы.
Как удалить папку с недопустимым именем файла — 3 способа
На жестком диске (HDD) или на твердотельном накопителе (SSD) вашего компьютера находится неудаляемая папка. Независимо от того, создали ли вы сами папку или ее создал кто-то другой, вы захотите от нее избавиться. Простые методы решения этой проблемы не подойдут.
Используйте три предложенных метода.
1 способ.
Вызовите командную строку, как описано выше в статье и выполните команду:
rmdir \\.\C:\CON
Эта команда работает, если обрабатываемая папка была пустой. При необходимости измените команду, если местоположение и имя удаляемого каталога отличаются от этих.
Если в папке «CON» есть файлы, сначала очистите этот каталог через консоль командой:
del \\.\C:\CON /q
Затем удалите ненужную папку:
rmdir \\.\C:\CON
2 способ.
Для выполнения задачи используйте бесплатную программу Windows Tweaker, с помощью которой вы можете изменять параметры операционной системы.
Несмотря на то, что программа Windows Tweaker давно не обновлялась, но она хорошо подходит для наших целей. Мы используем переносную версию (portable) приложения, которую не нужно устанавливать на компьютер.
Пройдите шаги:
- Скачайте Windows Tweaker по ссылке из облачного хранилища.
- Запустите приложение на ПК.
- В окне «Windows Tweaker» откройте вкладку «Задачи».
- На верхней панели выберите раздел «специальные имена папок».
- Здесь вы можете создать папку с любым запрещенным именем в Windows, например, для проведения исследований.
- Нажмите на кнопку «Просмотр и удаление». Убедитесь, что эта папка должна быть пуста перед удалением.
- В окне «Выбор папки» выделите нужную папку, а затем нажмите на кнопку «Выбор папки».
- Эта папка сразу удаляется с компьютера.
3 способ.
Создание и удаление неподдерживаемых файлов и папок возможно с помощью «живого» DVD-диска или USB-накопителя с Linux. Вам нужно использовать загрузочные Live CD, Live DVD или Live USB носители с операционной системой Linux. Также для этих целей подходят антивирусные спасательные диски, потому что они созданы на основе дистрибутивов Linux.
Загрузитесь с Live USB на ПК. С помощью файлового менеджера, установленного на подобном диске, можно получить доступ к системе Windows. Linux нужен только драйвер для доступа на запись к файловой системе Windows. Удалите или переименуйте файл или папку с недопустимым именем.
Выводы статьи
У некоторых пользователей возникают вопросы, какие символы запрещено использовать в имени файла или папки. В операционной системе Windows имеются запрещенные знаки в имени файла или папки, а отдельные имена нельзя использовать на компьютере.
Имеется способ, позволяющий создать папку или файл с неподдерживаемым именем, но его будет не просто удалить с ПК. Удаление подобного файла или папки с компьютера выполняется с помощью нескольких методов.
Похожие публикации:
- 10 способов запустить локальную политику безопасности Windows
- Как включить темный режим Windows 11
- Как убрать экран блокировки Windows 11 — 5 способов
- Как отключить автоматическое обновление драйверов Windows
- Отключение изоляции ядра Windows 11 — 5 способов
The OP’s question has already been fully answered here and here, for instance. Here I am just extending those answers by showing how to fix it on Linux:
In Linux, find all file and folder names with characters which are forbidden in Windows
If you’re on Linux, and you just want to find all file and folder names with characters which are forbidden in Windows, you can run the following command:
# Find all files and folders with any of these Windows-illegal characters in
# their name: \ : * ? " < > |
find . -name '*[\\:\*?\"<\>|]*'
This is really useful, for instance, so you can manually clean or «fix» a git code repository written on Linux which you now need to clone and use on Windows. If you don’t find and clean out and fix all of the Windows-incompatible characters in file and folder names first, the repository will fail to clone on Windows, and you’ll see errors like this, for instance:
$ git clone https://github.com/ElectricRCAircraftGuy/eRCaGuy_hello_world.git
Cloning into 'eRCaGuy_hello_world'...
remote: Enumerating objects: 4342, done.
remote: Counting objects: 100% (1184/1184), done.
remote: Compressing objects: 100% (366/366), done.
remote: Total 4342 (delta 819), reused 1149 (delta 799), pack-reused 3158Receiving objects: 100% (4342/4342), 6.50 Mi
Receiving objects: 100% (4342/4342), 7.02 MiB | 6.50 MiB/s, done.
Resolving deltas: 100% (2725/2725), done.
error: invalid path 'cpp/class_copy_constructor_and_assignment_operator/Link to Copy constructor vs assignment operat
or in C++ - GeeksforGeeks%%%%% [see `t2 = t1; -- calls assignment operator, same as "t2.operator=(t1);" `].desktop'
fatal: unable to checkout working tree
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry with 'git restore --source=HEAD :/'
Above, you can see the error: invalid path
which made the git clone
fail because my filename at path cpp/class_copy_constructor_and_assignment_operator/Link to Copy constructor vs assignment operat or in C++ - GeeksforGeeks%%%%% [see `t2 = t1; -- calls assignment operator, same as "t2.operator=(t1);" `].desktop
is invalid in Windows, causing the repository to fail to clone on Windows, because it has the double quote ("
) character in it. So, I’m going to manually rename that file on Linux, removing the "
chars, and push the changes to my git repository so that I can then clone it on Windows.
Keep Windows file paths <= 259 chars, and folder paths <= 248 chars (git clone
error: Filename too long
)
Even if you remove the forbidden chars from your folder and filenames by finding them with the find . -name '*[\\:\*?\"<\>|]*'
command above, keep in mind that the Windows MAX_PATH
limitation is still in place, limiting your total path length to <= 259 chars for a file, or <= 248 chars for a folder. See here: Maximum filename length in NTFS (Windows XP and Windows Vista)?
If you violate this path limit and then try to git clone
a repo on Windows, you’ll get this Filename too long
error:
$ git clone https://github.com/ElectricRCAircraftGuy/eRCaGuy_hello_world.git
Cloning into 'eRCaGuy_hello_world'...
remote: Enumerating objects: 4347, done.
remote: Counting objects: 100% (1189/1189), done.
remote: Compressing objects: 100% (370/370), done.
remote: Total 4347 (delta 823), reused 1152 (delta 800), pack-reused 3158
Receiving objects: 100% (4347/4347), 7.03 MiB | 5.82 MiB/s, done.
Resolving deltas: 100% (2729/2729), done.
error: unable to create file cpp/class_copy_constructor_and_assignment_operator/Link to Copy constructor vs assignmen
t operator in C++ - GeeksforGeeks%%%%% [see `t2 = t1; -- calls assignment operator, same as ''t2.operator=(t1);'' `]
.desktop: Filename too long
Updating files: 100% (596/596), done.
Filtering content: 100% (8/8), 2.30 MiB | 2.21 MiB/s, done.
fatal: unable to checkout working tree
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry with 'git restore --source=HEAD :/'
Notice this part, because of my ridiculously-long filename:
error: unable to create file cpp/class_copy_constructor_and_assignment_operator/Link to Copy constructor vs assignment operator in C++ - GeeksforGeeks%%%%% [see `t2 = t1; -- calls assignment operator, same as ''t2.operator=(t1);'' `].desktop: Filename too long
Shorten your long filename to reduce the path length, commit and push the change, and try to clone again.
References:
-
While on Windows 10 Pro, I tried to type a
"
into a folder name, and I got this popup window error: -
I used https://regex101.com/ (see: https://regex101.com/r/lI5Lg9/1), to build and test the
[\\:\*?\"<\>|]
regular expression to know which characters to escape, by looking in the «Explanation» section on the right-hand side:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
https://ru.wikipedia.org/wiki/%D0%98%D0%BC%D1%8F_%D1%84%D0%B0%D0%B9%D0%BB%D0%B0 | |
<pre> | |
Запрещённые символы | |
Многие операционные системы запрещают использование некоторых служебных символов. | |
Запрещённые символы Windows (в различных версиях): | |
\ — разделитель подкаталогов | |
/ — разделитель ключей командного интерпретатора | |
: — отделяет букву диска или имя альтернативного потока данных | |
* — заменяющий символ (маска «любое количество любых символов») | |
? — заменяющий символ (маска «один любой символ») | |
» — используется для указания путей, содержащих пробелы | |
< — перенаправление ввода | |
> — перенаправление вывода | |
| — обозначает конвейер | |
+ — (в различных версиях) конкатенация | |
Частично запрещённые символы Windows: | |
пробел — не допускается в конце имени файла; | |
. — не допускается в конце имени файла кроме имён каталогов, состоящих из точек и доступа с префиксом «\\?\». | |
Символы, вызывающие проблемы в широко распространённых компонентах: | |
% — в Windows используется для подстановки переменных окружения в интерпретаторе команд, вызывает проблемы при открытии файла через стандартный диалог открытия файла; | |
! — в Windows используется для подстановки переменных окружения в интерпретаторе команд, в bash используется для доступа к истории[1]; | |
@ — в интерпретаторах команд вызывает срабатывание функций, предназначенных для почты. | |
В именах файлов UNIX и некоторых UNIX-подобных ОС запрещен слеш (/) — разделитель подкаталогов — и символ конца C-строки (\0). Перечисленные выше символы (кроме слеша) использовать можно, но из соображений совместимости их лучше избегать. | |
</pre> |
Названия файлов в операционной системе Windows имеют определенные ограничения по использованию символов. Некоторые символы являются запрещенными и не могут быть использованы при именовании файлов.
Запрещенные символы включают в себя знаки пунктуации, такие как вопросительный знак, восклицательный знак, кавычки и другие. Они не могут быть использованы в названиях файлов, поскольку могут вызвать конфликты с функциями операционной системы.
Также недопустимы использование некоторых специальных символов, например звездочки, вопросительного знака и кавычек. Эти символы имеют определенное значение в операционной системе и могут вызвать ошибки при использовании в названиях файлов.
Важно помнить, что использование запрещенных символов в названиях файлов может привести к непредсказуемому поведению операционной системы, а также к проблемам при работе с такими файлами. Поэтому, при именовании файлов в Windows следует строго соблюдать установленные ограничения.
Содержание
- Запрещенные символы в названиях файлов
- Определение запрещенных символов
- Почему запрещены некоторые символы
- Проблемные символы в операционной системе Windows
- Как избежать использования запрещенных символов в названиях файлов
Запрещенные символы в названиях файлов
В операционной системе Windows существует ряд символов, использование которых в названиях файлов недопустимо. Это связано с ограничениями на уровне файловой системы NTFS, FAT и FAT32.
Запрещенными символами являются:
- /:*?»<>| — это специальные символы, используемые для разделения пути файлов, обозначения диска, маскирования путей, а также как разделители в именах файлов;
- \ — символ обратного слеша является разделителем пути в файловой системе Windows, поэтому его использование в названиях файлов также запрещено;
- | — вертикальная черта используется в операционной системе Windows для перенаправления потока данных, поэтому недопустимо его использование в названиях файлов;
- ? и * — это символы используются для задания маски файловых запросов.
Дополнительно, длина названия файла в операционной системе Windows не может превышать 255 символов.
Использование запрещенных символов в названиях файлов может привести к ошибкам при работе с файлами, отказу в доступе, а также к проблемам при копировании или перемещении файлов. Поэтому, при выборе названия файла, необходимо избегать данных символов, чтобы избежать возможных проблем в дальнейшем.
Определение запрещенных символов
В операционной системе Windows существуют определенные символы, которые не допускаются в названиях файлов. Это связано с ограничениями операционной системы и файловых систем, которые не могут обрабатывать эти символы корректно или считают их специальными символами.
Запрещенные символы в названиях файлов в Windows включают следующие:
- Обратный слеш (\)
- Прямой слеш (/)
- Двоеточие (:)
- Вопросительный знак (?)
- Звездочка (*)
- Символы меньше (<) и больше (>)
- Кавычки («)
- Вертикальная черта (|)
Также, названия файлов не могут начинаться с точки (.), которая используется в операционной системе для скрытых файлов.
Использование запрещенных символов в названиях файлов может вызвать проблемы при создании, сохранении или изменении файлов в операционной системе Windows. При попытке использования запрещенных символов, операционная система может выдавать ошибки или не позволять выполнить операцию. Поэтому, рекомендуется избегать использования этих символов при именовании файлов и папок.
Почему запрещены некоторые символы
Запрещенные символы в названиях файлов в операционной системе Windows существуют с целью обеспечить правильное функционирование системы и предотвратить возникновение проблем при работе с файлами.
Некоторые символы, такие как символы определенного юникода, служебные символы и все разделители пути, не могут быть использованы в названиях файлов из-за своей особой семантики или предназначения. Например, символы, которые используются в командах командной строки или при формировании файловых путей, не могут быть использованы в названиях файлов, чтобы не возникала путаница и непредсказуемое поведение операционной системы.
Запрещенные символы в названиях файлов могут вызывать ошибки при попытке создания, переименования или удаления файлов. Например, символы «/», «\», «:», «*», «?», «<«, «>«, «|», а также двойной или точка в начале имени файла не допускаются, так как они используются для других целей в файловой системе Windows.
Ограничения на использование определенных символов в названиях файлов также связаны с тем, что файловая система Windows должна быть совместима с другими операционными системами, такими как Linux и macOS. Поэтому определенные символы, которые могут быть допустимыми в одной системе, могут стать запрещенными в другой, чтобы обеспечить универсальную совместимость.
Использование запрещенных символов в названиях файлов может привести к трудностям в работе с файлами, а также к проблемам с безопасностью и совместимостью системы. Поэтому рекомендуется следовать правилам и ограничениям на использование символов при именовании файлов в операционной системе Windows.
Проблемные символы в операционной системе Windows
Операционная система Windows имеет определенные ограничения в отношении символов, которые могут быть использованы в названиях файлов. Неправильное или недопустимое использование символов может вызывать проблемы при работе с файлами и папками.
Следующие символы являются запрещенными в названиях файлов в Windows:
- \/:*?»<>| — эти символы используются для других целей в операционной системе и не могут быть частью имени файла;
- . (точка) или .. (две точки) в начале имени файла — используются для обозначения текущей и родительской директории соответственно;
- CON, PRN, NUL, LPT1, LPT2, LPT3, COM1, COM2, COM3 и т. д. — эти имена зарезервированы для устройств и не могут быть использованы в файлах или папках;
- Любой символ из набора ASCII со значением менее 32 (включая служебные управляющие символы) — эти символы не отображаются и могут вызывать ошибки при работе с файлами и папками;
- Любой символ выше значений 127 в кодировке Unicode (UTF-8) — операционная система Windows поддерживает только ограниченный набор символов, и некоторые символы могут вызывать проблемы.
При создании файлов и папок в операционной системе Windows рекомендуется избегать использования запрещенных символов и следовать общепринятым правилам именования файлов, чтобы избежать возможных проблем и сложностей при работе с файловой структурой.
Как избежать использования запрещенных символов в названиях файлов
1. Избегайте использования специальных символов, таких как знаки вопроса (?, *), кавычки («, ‘), угловые скобки (<, >) и выделители директорий (/, \).
2. Не используйте зарезервированные слова и имена устройств в качестве названия файлов. Например, «CON», «PRN», «AUX», «LPT1» и «NUL» являются зарезервированными и их использование в названиях файлов может вызвать ошибки.
3. Старайтесь не превышать максимальную длину имени файла, которая составляет 255 символов.
4. Используйте только допустимые символы, такие как латинские буквы (a-z, A-Z), цифры (0-9), пробелы и дефисы.
5. Обратите внимание на регистр символов: операционная система Windows не различает регистр символов, поэтому «File.txt» и «file.txt» будут считаться одним и тем же файлом.
6. Если вы хотите использовать название файла на разных операционных системах (например, Windows и Linux), рекомендуется придерживаться общепринятых правил и избегать специфических символов для каждой операционной системы.
Соблюдение этих рекомендаций поможет избежать проблем с названиями файлов в операционной системе Windows и обеспечит более гладкую работу с вашими файлами.
Добавил(а) microsin
Символы, допустимые в коротких именах файлов, каталогов и расширениях:
буквы, цифры, символы: ~@#$%^-_(){}’`
Символы, недопустимые в коротких именах файлов, каталогов и расширениях:
+=[]:*?;«,./\<>|’пробел’
Символы, недопустимые в длинных именах файлов, каталогов и расширениях:
/\:*?<>|
[Ссылки]
1. ДОПУСТИМЫЕ И НЕДОПУСТИМЫЕ СИМВОЛЫ В ИМЕНИ ФАЙЛА site:inn.h1.ru.