Вы когда-нибудь пытались создать папку с именем con в проводнике Windows и получили сообщение об ошибке? Это не сбой вашей системы и не ошибка файловой системы. Причина кроется в глубоких исторических традициях операционных систем, которые сохраняются в современном программном обеспечении десятилетиями. Система Windows выдаёт предупреждение о том, что имя файла недопустимо, так как оно зарезервировано.
Название con является аббревиатурой от английского слова «console», что переводится как консоль или терминал. В ранних версиях DOS и первых итерациях операционной системы MS-DOS не существовало понятия графического интерфейса в привычном нам виде. Все взаимодействие с пользователем происходило через текстовый терминал, который программно обозначался именно этим именем.
Сегодняшняя ОС Windows, несмотря на современный интерфейс, сохраняет полную совместимость с архивной архитектурой. Это означает, что при попытке создать объект с именем con, ядро системы интерпретирует это не как имя папки или файла, а как команду обращения к устройству вывода. Вы не можете создать файл с именем «принтер» или «аудиоустройство» по той же причине, что и con.
Историческое наследие и архитектура DOS
Чтобы понять, почему нельзя создать папку con, нужно заглянуть в историю разработки операционных систем. В эпоху, когда компьютеры управлялись исключительно через командную строку, программистам требовался простой способ обращения к аппаратным средствам без использования сложных путей к файлам. Для этих целей были выделены специальные зарезервированные имена, которые система воспринимала как устройства.
Имя con стало универсальным каналом ввода-вывода для клавиатуры и монитора. Когда программа писала данные в con, они отображались на экране. Когда программа читала данные из con, она получала нажатия клавиш. Эта логика была жестко «зашита» в ядро MS-DOS и перекочевала в Windows NT, которая легла в основу всех современных версий Windows.
Если бы система позволяла создавать обычные папки или файлы с такими именами, возник бы серьезный конфликт имен. Программа, пытающаяся записать текст в консоль, могла бы случайно записать его в вашу личную папку con, что привело бы к потере данных или непредсказуемому поведению системы. Запрет на создание таких объектов защищает целостность работы драйверов и системных процессов.
Список зарезервированных имен файлов
Имя con — это лишь один из представителей группы зарезервированных имен. Существует еще ряд названий, которые система Windows блокирует при попытке создания файлов или папок в любой версии, от Windows XP до актуальных сборок Windows 11. Эти имена зарезервированы для взаимодействия с периферийными устройствами.
Ниже представлен полный список имен, которые вы не сможете использовать для создания объектов в корневом каталоге или вложенных папках:
- 🚫
CON— консоль (клавиатура и экран) - 🚫
PRN— принтер (стандартный выход на печать) - 🚫
AUX— вспомогательное устройство (последовательный порт) - 🚫
NUL— пустое устройство (черная дыра для данных) - 🚫
CLOCK$— системные часы - 🚫
COM1–COM9— последовательные порты - 🚫
LPT1–LPT9— параллельные порты
Особенность заключается в том, что система игнорирует регистр букв. Имена con, CON, Con или cOn воспринимаются Windows как одно и то же зарезервированное устройство. Попытка переименовать файл в любое из этих сочетаний всегда завершится ошибкой «Недопустимое имя файла».
| Имя устройства | Назначение | Тип доступа | Аналог в Linux/Unix |
|---|---|---|---|
CON |
Консоль ввода-вывода | Чтение и запись | /dev/tty |
PRN |
Стандартный принтер | Запись | /dev/lp0 |
AUX |
Последовательный порт (COM1) | Чтение и запись | /dev/ttyS0 |
NUL |
Пустое устройство | Чтение и запись | /dev/null |
Почему нельзя обойти запрет в Проводнике
Обычный пользователь взаимодействует с файловой системой через графический интерфейс Проводника. Этот интерфейс настроен на максимальную безопасность и удобство, поэтому он заранее блокирует действия, которые могут нарушить работу системы. Когда вы вводите имя con в поле создания новой папки, API Проводника проверяет список зарезервированных имен до того, как отправить запрос к диску.
Система видит, что вы пытаетесь создать объект, имя которого совпадает с именем устройства. В этот момент Windows мгновенно прерывает операцию и показывает сообщение об ошибке. Даже если вы попробуете добавить расширение, например, con.txt, в некоторых случаях система может сработать корректно, но сам по себе con без расширения всегда будет заблокирован на уровне файловых ссылок.
⚠️ Внимание: Попытки исправить ошибку через редактирование реестра для разблокировки имени
conмогут привести к нестабильной работе системы. Ядро Windows жестко привязано к этим именам, и их «освобождение» может нарушить работу драйверов ввода-вывода.
Поэтому стандартными средствами графического интерфейса создать папку с именем con невозможно. Это не баг, а фича, направленная на предотвращение конфликтов имен. Если вам жизненно необходимо создать такой объект, придется использовать другие инструменты, которые работают на более низком уровне взаимодействия с файловой системой.
Создание папки con через командную строку
Хотя графический интерфейс блокирует создание папки con, файловая система NTFS теоретически позволяет создавать такие имена, если запрос сформулирован определенным образом. Для этого нужно использовать командную строку (cmd.exe), но с хитростью. Если ввести простую команду mkdir con, система вернет ошибку «Недопустимое имя устройства».
Секрет кроется в синтаксисе путей в Windows. Имя con зарезервировано только если оно стоит в конце пути. Если добавить к имени специальный символ, который говорит системе «это не устройство, а папка», обход становится возможным. Обычно для этого используется завершение пути точкой или обратным слешем, но в случае с con ситуация сложнее.
Существует метод, при котором создается папка с именем, содержащим недопустимые символы, которые система игнорирует при отображении, но сохраняет в метаданных. Однако для имени con самый надежный способ — использование префикса \\?\. Этот префикс отключает стандартную обработку путей и передает команду напрямую файловому драйверу.
Попробуйте выполнить следующую команду в административной командной строке:
md \\?\C:\Путь\К\Папке\con
Это создаст папку, но с одним нюансом: вы не сможете перейти в неё обычным способом, так как имя останется зарезервированным для большинства программ.
☑️ Действия для создания папки con
⚠️ Внимание: После создания такой папки вы можете обнаружить, что удалить её через стандартный интерфейс невозможно. Инструменты Windows будут пытаться открыть её как консоль, а не как директорию, что приведет к зависанию или ошибке доступа.
Что произойдет при попытке открыть такую папку?|Если вы попытаетесь открыть созданную папку con через Проводник, система, скорее всего, выдаст ошибку доступа или предложит сформатировать диск, так как интерпретирует запрос как обращение к устройству ввода-вывода, а не к файловой системе.-->
Проблемы с удалением и доступом
Создать папку con — это полдела. Главная проблема возникает при попытке с ней работать. Обычный Проводник просто не позволит вам открыть, переименовать или удалить этот объект. Попробуйте просто дважды кликнуть по ней — вы получите сообщение о том, что путь недопустим или устройство недоступно.
Даже если вы попытаетесь удалить папку через команду rmdir, система может снова ответить отказом, так как интерпретирует команду как попытку отключить консоль. Для удаления таких объектов требуются специальные утилиты, которые могут работать с «сырыми» путями, игнорируя логику Windows по обработке зарезервированных имен.
Иногда такие папки появляются в результате вредоносного действия вирусов, которые используют это имя, чтобы скрыть свои файлы от рядового пользователя. Вирус создает папку con, и обычные антивирусы или пользователи не могут её увидеть или удалить без специальных знаний. Это делает con идеальным укрытием для скрытых угроз.
con — это полдела. Главная проблема возникает при попытке с ней работать. Обычный Проводник просто не позволит вам открыть, переименовать или удалить этот объект. Попробуйте просто дважды кликнуть по ней — вы получите сообщение о том, что путь недопустим или устройство недоступно.rmdir, система может снова ответить отказом, так как интерпретирует команду как попытку отключить консоль. Для удаления таких объектов требуются специальные утилиты, которые могут работать с «сырыми» путями, игнорируя логику Windows по обработке зарезервированных имен.con, и обычные антивирусы или пользователи не могут её увидеть или удалить без специальных знаний. Это делает con идеальным укрытием для скрытых угроз.