Недавно я рассказал вам о процессах, которые не стоит завершать в Windows. $CUT$ И посмотреть видео о этом вы можете тут:
Сегодня будет описание еще одного запрета, касательно создания папки с определенным именем.
Если вы попробуете создать папку и дадите ей имя «con«, то у вас не получится это сделать и имя останется прежним. Сегодня я вам расскажу почему так происходит и почему лучше не создавать папку с таким названием.
Все дело в том, что слово «con« автоматически зарезервировано в Windows и описывает название внутреннего устройства операционной системы. Такое название не единственное, есть еще ряд слов, которых лучше не использовать. К ним относятся:
- CON Сокращенно от слова console, связано с устройствами ввода, вывода
- PRN Принтер, как правило, LPT1
- AUX Вспомогательный порт, как правило, COM1
- NUL Олицетворяет отсутствие значения
- COM1 — COM9 Порты последовательной связи
- LPT1 – LPT9 Параллельные порты принтера
Если вы захотите назвать папку любым из этих имен, то сделать этого у вас не получится. Вы увидите окно ошибки.
Но, есть несколько способов, которые помогут вам создать папку с именем «con«.
Использование клавиши ALT
Секрет этого способа в том, что к слову con или другому слову из списка, добавляется невидимые символы. Для того, чтобы создать папку с именем con, с помощью ALT, нужно сделать следующее:
Переходим в любой каталог и нажимаем комбинацию клавиш «CTRL + SHIFT + N«. Так вы сможете создать новую папку.
Кликаем на созданную папку правой кнопкой мыши и выбираем пункт «переименовать«. Также можно кликнуть по имени папки дважды левой кнопкой мыши или выделить папку и нажать F2.
После этого вводим имя «con«, зажимаем клавишу ALT и прописываем цифры 225. Отпускаем ALT и нажимаем «Enter«. Только вводить нужно те цифры, которые расположены на клавиатуре справа, иначе должного результата не будет.
Прописываем имя через командную строку
Сперва необходимо запустить командную строку. Напоминаю, это делается через нажатие комбинации клавиш «Win+r« и написание в поле выполнить команды «cmd”.
В командной строке необходимо ввести «md \\.\буква локального диска: \con« и нажать Enter. Путь вы можете указывать абсолютно любой.
После того, как вы создадите папку с зарезервированным словом, удалить ее просто так уже не получится. При удалении вас ожидает ошибка, что данную папку найти невозможно.
Опять придется пользоваться командной строкой. Как ее вызвать вы уже в курсе, поэтому скажу только команду, которую нужно будут ввести: «rd \\.\d:\con«. Естественно, ваш путь к папке может отличаться, так как хранится она может на другом диске.
А вообще папки с такими названиями создавать вообще не стоит, так как они могут привести к сбоям в работе ОС Windows. В таких папках чаще всего хранится служебная информация для работы ОС и подключаемых к ней устройств. Теперь вы знаете что не все можно создать в Window. Вы даже можете хорошо пошутить над друзьями зная эту маленькую хитрость.
- Introduction
- Task
- Implementation
- How it works
- More information
Introduction
In Windows operating system environments, there exist forbidden file names that cannot be used to name files, and also certain characters that cannot be used in filenames.
Task [top]
Identify forbidden characters, and understand why you cannot use them.
Implementation [top]
The following are (case insensitive) reserved names which cannot be assigned to a directory or file in Windows:
- CON
- PRN
- AUX
- NUL
- COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, COM0
- LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9, LPT0
The following are special characters which cannot be used in a directory or file names in Windows:
- < (less than)
- > (greater than)
- : (colon)
- “ (double quote)
- / (forward slash)
- \ (backslash)
- | (vertical bar or pipe)
- ? (question mark)
- * (asterisk)
How it works [top]
The reserved names mentioned above cannot be used to name a file or directory. The special characters mentioned above cannot be used in a file or directory name.
This is because they are reserved by the Windows operating system and are used to distinguish certain functions within the file system and legacy hardware that Windows needs in order to function.
More information [top]
- https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file
Все файловые системы, поддерживаемые Windows, используют концепцию файлов и каталогов для доступа к данным, хранящимся на диске или устройстве. Разработчики Windows, работающие с API-интерфейсами Windows для ввода-вывода файлов и устройств, должны понимать различные правила, соглашения и ограничения имен файлов и каталогов.
Доступ к данным можно получить с дисков, устройств и общих сетевых ресурсов с помощью интерфейсов API файлового ввода-вывода. Файлы и каталоги, наряду с пространствами имен, являются частью концепции пути, который представляет собой строковое представление того, где получить данные, независимо от того, на диске они, или устройстве, или сетевом ресурсе.
Имена файлов и каталогов
Все файловые системы придерживаются одних и тех же общих соглашений об именовании для отдельного файла: имя базового файла и необязательное расширение, разделяемые точкой. Однако, у каждой файловой системы, ()NTFS, и cdfs, NTFS или exFAT, FAT и FAT32, могут быть особые и иные правила о формировании отдельных компонентов пути к каталогу или файлу.
Обратите внимание, что каталог — это просто файл со специальным атрибутом, обозначающим его как каталог, но он также должен следовать всем тем же правилам именования, что и обычный файл. Поскольку термин «каталог» просто относится к определенному типу файлов в отношении файловой системы, мы будем использовать общий термин «файл» для охвата понятий каталогов и файлов данных как таковых. Из-за этого, если не указано иное, любые правила именования или использования или примеры для файла также должны применяться к каталогу. Термин путь относится к одному или нескольким каталогам, обратным косым чертам и, возможно, имени тома.
Ограничения количества символов также могут различаться и варьироваться в зависимости от используемой файловой системы и формата префикса имени пути. Это еще больше осложняется поддержкой механизмов обратной совместимости. Например, старая файловая система MS-DOS FAT поддерживает не более 8 символов для имени базового файла и 3 символа для расширения, в общей сложности 12 символов, включая разделитель точку. Файловые системы Windows FAT и NTFS не ограничиваются этим, поскольку они имеют поддержку длинных имен файлов, но они по-прежнему поддерживают предыдущие версии имен файлов.
Правила именования файлов
Следующие основные правила позволяют приложениям создавать и обрабатывать допустимые имена файлов и каталогов независимо от файловой системы:
- Используйте точку, чтобы отделить имя базового файла от расширения в имени каталога или файла.
- Используйте обратную косую черту (\) для разделения компонентов пути. Обратная косая черта отделяет имя файла от пути к нему, и одно имя каталога от другого имени каталога в пути. Нельзя использовать обратную косую черту в имени файла или каталога, потому что это зарезервированный символ, который разделяет имена на составляющие.
- Не думайте о чувствительности к регистру. Например, можно считать имена OSCAR, Oscar и oscar одинаковыми, хотя некоторые файловые системы (например, файловая система, совместимая с POSIX) могут рассматривать их как разные. Обратите внимание, что NTFS поддерживает семантику POSIX для учета регистра, но это не поведение по умолчанию.
- Обозначения томов (буквы дисков) не учитывают регистр символов. Например,» D:\ «и» d:\ » – это одно и то же.
- Используйте любой символ на текущей кодовой странице для имени, включая символы Юникода и символы в расширенном наборе символов (128-255), за исключением следующих:
- Следующие зарезервированные символы:
- < (меньше)
- > (больше)
- : (двоеточие)
- » (двойная кавычка)
- / (косая черта)
- \ (обратная косая черта)
- | (вертикальный стержень или символ трубы)
- ? (вопросительный знак)
- * (звездочка)
- Целое нулевое значение, иногда называемое символом ASCII NUL.
- Символы, целочисленные представления которых находятся в диапазоне от 1 до 31, за исключением альтернативных потоков данных, где эти символы разрешены.
- Любой другой символ, который целевая файловая система не разрешает использовать.
- Следующие зарезервированные символы:
- Используйте точку как компонент каталога в пути для представления текущего каталога, например».\temt.txt.».
- Используйте две последовательных точки (..) как компонент каталога в пути для представления родительского каталога текущего каталога, например»..\temp.txt.»
- Не используйте следующие зарезервированные имена для имени файла: CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, и LPT. Также избегайте этих имен, за которыми следует расширение; например, NUL.txt не рекомендуется.
- Не завершайте имя файла или каталога пробелом или точкой. Хотя файловая система может поддерживать такие названия, оболочка и пользовательский интерфейс Windows не будут работать с этим. Однако допустимо указывать точку в качестве первого символа имени. Например, «.temp».
Короткие и длинные имена
Длинным именем файла считается любое имя файла, которое превышает соглашение об именовании стиля MS-DOS (также называемое схема 8.3). При создании длинного имени файла Windows может также создать короткую форму имени 8.3, называемую псевдонимом 8.3 или коротким именем, и сохранить ее на диске. Это 8.3 псевдонимы могут быть отключены по соображениям производительности либо по всей системе, либо для указанного тома, в зависимости от конкретной файловой системы.
Во многих файловых системах имя файла будет содержать тильду ( ~ ) в каждом компоненте имени, которое слишком длинное, чтобы соответствовать правилам именования 8.3.
Не все файловые системы могут следовать соглашение о подстановке тильды, и системы могут быть настроены на отключение 8.3 генерации псевдонимов, даже если они обычно поддерживают его. Поэтому не следует делать предположение, что псевдоним 8.3 уже существует на диске.
По запросу 8.3 имена файлов, длинные имена файла или полный путь к файлу из системы, рассмотрите следующие варианты:
- Чтобы получить 8.3 форму длинного имени файла, используйте функцию GetShortPathName.
- Чтобы получить версию короткого имени длинного файла, используйте функцию GetLongPathName.
- Чтобы получить полный путь к файлу, используйте функцию GetFullPathName.
В новых файловых системах, таких как NTFS, exFAT, UDFS и FAT32, Windows сохраняет длинные имена файлов на диске в Юникоде, что означает, что исходное длинное имя файла всегда сохраняется. Это верно, даже если длинное имя файла содержит расширенные символы, независимо от кодовой страницы, которая активна во время операции чтения или записи диска.
Файлы, использующие длинные имена файлов, могут быть скопированы между разделами файловой системы NTFS и разделами файловой системы Windows FAT без потери информации об имени файла. Это может быть неверно для старых MS-DOS FAT и некоторых типов cdfs (CD-ROM) файловых систем, в зависимости от фактического имени файла. В данном случае, если это возможно, подставляется короткое имя файла.
Автор этого материала — я — Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML — то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
- Информация о материале:
- Опубликовано:
- Обновлено:
Например нельзя создать каталог с именем con и не потому что так в детстве дразнили дядюшку Билла (якобы ботан), а потому, что это имя зарезервировано для сокращённого обозначения консоли — console
В современном с ума сошедшем мире всё перевернулось с ног на голову нетбуки стали называть ноутбуками, каталоги именуют нынче папками (разделы наверно мамками:), вместо Ё пишут Е и пашло поехало
Согласно Обзор файловых систем FAT, HPFS и NTFS в системе Windows нельзя обычным образом создать файлы и каталоги с именами:
Только после полного отключения блокировщика скриптов и рекламы на этом месте появится полезная подсказка/ссылка/код/пример конфигурации/etc!
Также в именах для файлов и каталогов нельзя использовать символы:
- для файловой системы FAT: . » / \ [ ] : ; | = ,
- для файловой системы NTFS: ? » / \ < > * | :
На самом деле файлы и каталоги с запрещёнными (зарезервированными) именами создать можно, если очень хочется:
Только после полного отключения блокировщика скриптов и рекламы на этом месте появится полезная подсказка/ссылка/код/пример конфигурации/etc!
Но не нужно этого делать по той причине, что могут возникнуть конфликты при работе различных устройств! Например, мы создали каталог с именем LPT1 или COM3, потом хорошо выпили и набрали команду copy file.txt COM3 или copy con LPT1 — внимание, вопрос: куда система должна выполнить копирование, в каталог или в порт COM3/LPT1?:)
Так что невозможность создания, обычным образом, файлов и каталогов с зарезервированными системными (досовскими) именами — это не баг и не страх Билла Гейтса, а баг скорее всего возможность создать такие файлы и каталоги через консоль md "\\.\C:\con"!
Лучше не пытаться свернуть мозги системе, а то гляди может и получиться. Всех с новым годом, желаю всем в новом году счастья, здоровья и всяческих баг, тьфу ты.., т.е. благ!;))
Ссылки по теме:
- Обзор файловых систем FAT, HPFS и NTFS
- Ограничения именования в Team Foundation