Добавил(а) microsin
Символы, допустимые в коротких именах файлов, каталогов и расширениях:
буквы, цифры, символы: ~@#$%^-_(){}’`
Символы, недопустимые в коротких именах файлов, каталогов и расширениях:
+=[]:*?;«,./\<>|’пробел’
Символы, недопустимые в длинных именах файлов, каталогов и расширениях:
/\:*?<>|
[Ссылки]
1. ДОПУСТИМЫЕ И НЕДОПУСТИМЫЕ СИМВОЛЫ В ИМЕНИ ФАЙЛА site:inn.h1.ru.
Многие пользователи сталкивались с тем, что при попытке создать или сохранить файл они видели сообщение о том, что это «недопустимое имя файла», если там присутствуют некоторые символы или было введено неподходящее имя.
Дело в том, что в операционной системе 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 способов
Названия файлов в операционной системе 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 и обеспечит более гладкую работу с вашими файлами.
Допустимые символы в имени файла
Допустимые символы в имени файла.
Содержание
1 Общая информация
- Для Windows базируемся на документе https://docs.microsoft.com/ru-ru/windows/win32/fileio/naming-a-file.
2 Запрещённые печатные символы ASCII
2.1 Linux/Unix
/
(forward slash)
2.2 Windows
<
(less than)>
(greater than):
(colon), в NTFS имеет семантику альтернативных потоков данных (Alternate Data Streams)"
(double quote)/
(forward slash)\
(backslash)|
(vertical bar or pipe)?
(question mark)*
(asterisk)
3 Непечатаемые символы
3.1 Linux/Unix
0
илиNUL
(NULL byte)
3.2 Windows
0
–31
(ASCII control characters)
4 Зарезервированные имена файлов
4.1 Windows
CON
PRN
AUX
NUL
COM1
COM2
COM3
COM4
COM5
COM6
COM7
COM8
COM9
LPT1
LPT2
LPT3
LPT4
LPT5
LPT6
LPT7
LPT8
LPT9
5 Другие ограничения
5.1 Windows
- Имена файлов не могут заканчиваться пробелом или точкой.
5.2 macOS
- Двоеточие
:
и косая черта/
запрещены в зависимости от контекста. - Двоеточие
:
используется в качестве разделителя в путях HFS, а косая черта/
используется в качестве разделителя в путях POSIX.
Дмитрий Сергеевич Кулябов
Профессор кафедры прикладной информатики и теории вероятностей
Мои научные интересы включают физику, администрирование Unix и сетей.
Похожие
- Броузер Nyxt
- Контроллер Cisco WLC. Обновление программного обеспечения
- Пакетный менеджер для Windows. WinGet
- Перенос настроек профиля пользователя Windows
- MSYS2. Приложения Unix под Windows
Where can I find a list of allowed characters in filenames, depending on the operating system?
(e.g., on Linux, the character :
is allowed in filenames, but not on Windows)
asked Jan 27, 2011 at 8:15
python dudepython dude
8,01011 gold badges40 silver badges53 bronze badges
8
You should start with the Wikipedia Filename page. It has a decent-sized table (Comparison of filename limitations), listing the reserved characters for quite a lot of file systems.
It also has a plethora of other information about each file system, including reserved file names such as CON
under MS-DOS. I mention that only because I was bitten by that once when I shortened an include file from const.h
to con.h
and spent half an hour figuring out why the compiler hung.
Turns out DOS ignored extensions for devices so that con.h
was exactly the same as con
, the input console (meaning, of course, the compiler was waiting for me to type in the header file before it would continue).
answered Jan 27, 2011 at 8:22
paxdiablopaxdiablo
856k235 gold badges1581 silver badges1958 bronze badges
15
OK, so looking at Comparison of file systems if you only care about the main players file systems:
- Windows (FAT32, NTFS): Any Unicode except
NUL
,\
,/
,:
,*
,?
,"
,<
,>
,|
. Also, no space character at the start or end, and no period at the end. - Mac(HFS, HFS+): Any valid Unicode except
:
or/
- Linux(ext[2-4]): Any byte except
NUL
or/
so any byte except NUL
, \
, /
, :
, *
, ?
, "
, <
, >
, |
and you can’t have files/folders call .
or ..
and no control characters (of course).
shawn
4,3251 gold badge17 silver badges25 bronze badges
answered Feb 12, 2016 at 0:19
CpILLCpILL
6,2195 gold badges38 silver badges38 bronze badges
9
On Windows OS create a file and give it a invalid character like \
in the filename. As a result you will get a popup with all the invalid characters in a filename.
answered Sep 1, 2016 at 13:59
DevidDevid
1,8334 gold badges29 silver badges48 bronze badges
To be more precise about Mac OS X (now called MacOS) /
in the Finder is interpreted to :
in the Unix file system.
This was done for backward compatibility when Apple moved from Classic Mac OS.
It is legitimate to use a /
in a file name in the Finder, looking at the same file in the terminal it will show up with a :
.
And it works the other way around too: you can’t use a /
in a file name with the terminal, but a :
is OK and will show up as a /
in the Finder.
Some applications may be more restrictive and prohibit both characters to avoid confusion or because they kept logic from previous Classic Mac OS or for name compatibility between platforms.
answered Feb 3, 2018 at 12:46
Rather than trying to identify all the characters that are unwanted,
you could just look for anything except the acceptable characters. Here’s a regex for anything except posix characters:
cleaned_name = re.sub(r'[^[:alnum:]._-]', '', name)
answered May 15, 2022 at 21:54
1
For «English locale» file names, this works nicely. I’m using this for sanitizing uploaded file names. The file name is not meant to be linked to anything on disk, it’s for when the file is being downloaded hence there are no path checks.
$file_name = preg_replace('/([^\x20-~]+)|([\\/:?"<>|]+)/g', '_', $client_specified_file_name);
Basically it strips all non-printable and reserved characters for Windows and other OSs. You can easily extend the pattern to support other locales and functionalities.
answered Oct 24, 2018 at 3:35
I took a different approach. Instead of looking if the string contains only valid characters, I look for invalid/illegal characters instead.
NOTE: I needed to validate a path string, not a filename. But if you need to check a filename, simply add /
to the set.
def check_path_validity(path: str) -> bool:
# Check for invalid characters
for char in set('\?%*:|"<>'):
if char in path:
print(f"Illegal character {char} found in path")
return False
return True
answered Sep 9, 2022 at 7:56
Here is the code to clean file name in python.
import unicodedata
def clean_name(name, replace_space_with=None):
"""
Remove invalid file name chars from the specified name
:param name: the file name
:param replace_space_with: if not none replace space with this string
:return: a valid name for Win/Mac/Linux
"""
# ref: https://en.wikipedia.org/wiki/Filename
# ref: https://stackoverflow.com/questions/4814040/allowed-characters-in-filename
# No control chars, no: /, \, ?, %, *, :, |, ", <, >
# remove control chars
name = ''.join(ch for ch in name if unicodedata.category(ch)[0] != 'C')
cleaned_name = re.sub(r'[/\\?%*:|"<>]', '', name)
if replace_space_with is not None:
return cleaned_name.replace(' ', replace_space_with)
return cleaned_name
answered Jun 8, 2018 at 15:20
Du D.Du D.
5,0922 gold badges29 silver badges34 bronze badges
1