Разрешенные символы в имени файла windows

Допустимые и недопустимые символы в имени файла (Windows, DOS) Печать

Добавил(а) microsin

  

Символы, допустимые в коротких именах файлов, каталогов и расширениях:
буквы, цифры, символы: ~@#$%^-_(){}’`

Символы, недопустимые в коротких именах файлов, каталогов и расширениях:
+=[]:*?;«,./\<>|’пробел’

Символы, недопустимые в длинных именах файлов, каталогов и расширениях:
/\:*?<>|

[Ссылки]

1. ДОПУСТИМЫЕ И НЕДОПУСТИМЫЕ СИМВОЛЫ В ИМЕНИ ФАЙЛА site:inn.h1.ru.

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 dude's user avatar

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

paxdiablo's user avatar

paxdiablopaxdiablo

857k235 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's user avatar

shawn

4,3251 gold badge17 silver badges25 bronze badges

answered Feb 12, 2016 at 0:19

CpILL's user avatar

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.

enter image description here

answered Sep 1, 2016 at 13:59

Devid's user avatar

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.

WebDevBooster's user avatar

answered Feb 3, 2018 at 12:46

Jean Létourneau's user avatar

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

Dog Pilot's user avatar

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

TheRealChx101's user avatar

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

Rob's user avatar

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.'s user avatar

Du D.Du D.

5,0922 gold badges29 silver badges34 bronze badges

1

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

Дело в том, что в операционной системе Windows имеются запрещенные имена файлов. Не все имена файлов и папок разрешены, потому что существуют недопустимые символы в имени файла или папки.

Содержание:

  1. Недопустимые имена файлов Windows
  2. Запрещенные символы в имени файла или папки
  3. Как создать папку с недопустимым именем
  4. Как удалить папку с недопустимым именем файла — 3 способа
  5. Выводы статьи

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

Обычно, операционные системы 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:».

Выполните следующие действия:

  1. В поле поиска Windows введите «cmd».
  2. Запустите командную строку от имени администратора.
  3. В окне интерпретатора командной строки введите предложенную команду, а потом нажмите на клавишу «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) приложения, которую не нужно устанавливать на компьютер.

Пройдите шаги:

  1. Скачайте Windows Tweaker по ссылке из облачного хранилища.
  2. Запустите приложение на ПК.
  3. В окне «Windows Tweaker» откройте вкладку «Задачи».
  4. На верхней панели выберите раздел «специальные имена папок».
  5. Здесь вы можете создать папку с любым запрещенным именем в Windows, например, для проведения исследований.
  6. Нажмите на кнопку «Просмотр и удаление». Убедитесь, что эта папка должна быть пуста перед удалением.

просмотр и удаление

  1. В окне «Выбор папки» выделите нужную папку, а затем нажмите на кнопку «Выбор папки».

выбор папки

  1. Эта папка сразу удаляется с компьютера.

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 способов

Перейти к содержанию

На чтение 3 мин Опубликовано Обновлено

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

Одним из главных ограничений в именах файлов является использование некоторых специальных символов, таких как знаки вопроса (?), знаки восклицания (!), знаки процента (%), знаки хеш-символа (#) и другие. Все эти символы имеют специальное значение для операционной системы, поэтому их использование в именах файлов может привести к ошибкам и нежелательным результатам.

Еще одним ограничением является максимальная длина имени файла — 255 символов. В данное число входят не только символы имени файла, но и символы пути к файлу. Для компьютеров с файловой системой NTFS максимальная длина пути составляет 32 767 символов, но большинство приложений и операционных систем не поддерживает такие длинные имена файлов и путей, поэтому рекомендуется придерживаться краткости.

Также стоит учитывать регистр символов в именах файлов. В операционной системе Windows регистрозависимые файловые системы (например, FAT и NTFS) учитывают регистр символов, то есть файл «file.txt» и «File.txt» будут считаться разными файлами. Это нужно учитывать при работе с файлами, чтобы избежать ошибок и путаницы.

Основные правила и ограничения имени файлов в Windows

Вот основные правила и ограничения, которые следует учитывать при именовании файлов в Windows:

Правило / Ограничение Описание
Длина имени Имя файла не должно превышать 255 символов. Это включает в себя имя файла и его расширение.
Разрешенные символы Имя файла может содержать латинские буквы (A-Z, a-z), цифры (0-9), а также специальные символы, такие как точка (.), тире (-) и подчеркивание (_).
Запрещенные символы Некоторые символы запрещены в именах файлов, такие как знаки вопроса (?), звездочка (*), двоеточие (:), вертикальная черта (|), обратная косая черта (\), кавычки («»), угловые скобки (< >) и другие.
Регистр символов Имена файлов в Windows регистрозависимы, то есть различают между большими и малыми буквами. Например, файл «File.txt» и «file.txt» будут считаться различными файлами.
Зарезервированные имена Существуют зарезервированные имена файлов, которые нельзя использовать, такие как «CON», «PRN», «NUL», «COM1», «LPT1» и другие. Использование этих имен может вызвать ошибки при работе операционной системы.

Обращайте внимание на эти правила и ограничения, чтобы избежать проблем при работе с файлами в 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

  • 031 (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

  • Разрешить несколько rdp сеансов в windows 10
  • Разработка приложений для универсальной платформы windows visual studio что это
  • Размытые шрифты на втором мониторе в windows 10
  • Разрешения и журнал windows 10
  • Разработка приложений для windows на python