Символы которые разрешается использовать в имени файла в операционной системе 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 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, DOS) Печать

Добавил(а) microsin

  

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

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

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

[Ссылки]

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

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

Windows имеет свои собственные правила для имени файла или директории. Во-первых, длина имени не может превышать 255 символов. Во-вторых, нельзя использовать следующие специальные символы: \ / : * ? » < > |. Также нельзя использовать символы, зарезервированные для операционной системы, такие как CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9.

Кроме того, Windows не различает регистр символов в именах файлов и папок. Это означает, что имя «file.txt» и «File.txt» будут считаться одинаковыми и оба файла не смогут существовать в одной папке.

Чтобы избежать проблем и непредвиденных ситуаций, рекомендуется использовать только буквы латинского алфавита (в любом регистре), цифры, а также символы «-«, «_», «.» в именах файлов и папок. Всегда старайтесь выбирать понятные и осмысленные имена, чтобы легко ориентироваться в своих файловых и папках.

Содержание

  1. Разрешенные символы в имени файла в Windows
  2. Специальные символы:
  3. Ограничения по длине:
  4. Вопрос-ответ
  5. Какие символы разрешены в имени файла в Windows?
  6. Можно ли использовать пробелы в именах файлов и директорий в Windows?
  7. Можно ли использовать специальные символы, такие как @, #, $, %, в именах файлов в Windows?
  8. Какая максимальная длина имени файла или директории в Windows?

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

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

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

  • Буквы латинского алфавита (A-Z, a-z)
  • Цифры (0-9)
  • Символы подчеркивания (_) и дефиса (-)
  • Пробел ( ), но не в начале или конце имени файла
  • Точка (.) для разделения имени файла и его расширения

Дополнительно, Windows учитывает некоторые ограничения:

  1. Максимальная длина имени файла не должна превышать 255 символов.
  2. Нельзя использовать зарезервированные имена устройств (например, PRN, CON, AUX и другие).
  3. Нельзя использовать следующие специальные символы: / \ : * ? » < > |

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

Специальные символы:

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

  • \ (обратный слеш) — используется как разделитель папок в пути к файлу или директории;
  • / (прямой слеш) — также используется в качестве разделителя папок в пути к файлу или директории;
  • : (двоеточие) — используется для обозначения диска и порта в пути к файлу;
  • * (звездочка) — символ подстановки, используемый в шаблонах поиска файлов;
  • « (кавычки) — используются для обозначения строки с несколькими словами;
  • < (меньше) — знак меньше, используется в HTML коде;
  • > (больше) — знак больше, также используется в HTML коде;
  • | (вертикальная черта) — используется для разделения нескольких команд в командной строке Windows;
  • ? (вопросительный знак) — символ подстановки, используется для замены одного символа в шаблоне поиска файлов;
  • . (точка) — используется для обозначения расширения файла;

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

Ограничения по длине:

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

Длина полного пути к файлу или папке ограничена 260 символами. Это значит, что вместе с названием диска и всех вложенных папок в пути нельзя использовать больше 260 символов. Это ограничение применимо для Windows API функций, и оно не может быть преодолено.

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

Ограничения по длине имени файла или директории связаны с ограничениями файловой системы NTFS, используемой Windows. Она имеет определенные ограничения на количество символов, которые могут быть использованы в имени файлов и папок.

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

Вопрос-ответ

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

В Windows разрешены следующие символы в имени файла: буквы латинского алфавита (A-Z, a-z), цифры (0-9), точка (.), дефис (-) и подчеркивание (_). Однако некоторые символы могут быть зарезервированы для специальных назначений, поэтому лучше избегать их в именах файлов.

Можно ли использовать пробелы в именах файлов и директорий в Windows?

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

Можно ли использовать специальные символы, такие как @, #, $, %, в именах файлов в Windows?

Да, специальные символы, такие как @, #, $, %, разрешены в именах файлов в Windows. Однако, некоторые из этих символов могут быть зарезервированы для специальных назначений в определенных приложениях или операционной системе, поэтому лучше избегать использования этих символов в именах файлов и директорий, чтобы избежать возможных проблем.

Какая максимальная длина имени файла или директории в Windows?

Максимальная длина имени файла или директории в Windows составляет 255 символов. Однако, для лучшей совместимости и избежания проблем, рекомендуется использовать более короткие имена файлов и директорий.

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

Дело в том, что в операционной системе 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 способов

Допустимые символы в имени файла

Допустимые символы в имени файла.

Содержание

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

  • Символы для поиска в windows
  • Символы в командной строке windows 10
  • Символическая ссылка на файл windows
  • Символическая ссылка на каталог windows
  • Символическая ссылка windows что это