Почему нельзя создать папку aux
Почему нельзя создать папку «AUX» в winXP?
кстати в заголовке тот же AUX точно был.
http://forum.ixbt.com/topic.cgi?id=22:15055
Reserved Names in Windows XP
также PRN LPT1
вот так оно
http://technet2.microsoft.com/WindowsServer/en/library/8cc5891d-bf8e-4164-862d-dac5418c59481033.mspx?mfr=true
Several special file names are reserved by the system and cannot be used for files or folders: CON, AUX, COM1, COM2, COM3, COM4, LPT1, LPT2, LPT3, PRN, NUL
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс
Музей фактов
Новые факты теперь можно читать в Телеграме, Инстаграме и Твиттере.
Почему в Windows нельзя создать папку с именем «con»?
В Windows нельзя обычным способом создать папку с именем «con». Многие сайты утверждают, что это личное желание Билла Гейтса, которого в детстве дразнили таким словом (что якобы означает «ботан»). На самом деле всё проще: это ограничение восходит ещё к временам операционной системы MS-DOS. Там «con» наряду с другими подобными обозначениями (prn, aux, nul) было зарезервировано для обозначений устройств ввода-вывода, поэтому и нельзя создать папки с такими именами.
Почему в Windows нельзя создать папку или файл с именем Con
Если у вас есть компьютер с Windows, вы можете сразу проверить всё, о чём говорится в статье. Если у вас Мак, то почитайте о том, что бывает в другой операционной системе.
Эксперимент
Чтобы сразу прояснить, о чём пойдёт речь, попробуйте вот что:
- Запустите компьютер с Windows.
- В любом месте создайте новую папку и назовите её Con английскими буквами.
Получится что-то вроде этого:

Файлы виртуальных устройств
Чтобы понять, почему так происходит, нужно сначала познакомиться с файлами виртуальных устройств.
Когда первая версия Windows только появилась, она была не самостоятельной операционной системой, а оболочкой для системы MS DOS. А первая версия MS DOS появилась в 1981 году, и уже тогда предполагалось, что к компьютерам с MS DOS можно будет подключать разные устройства — принтеры, мыши, сканеры и так далее.
Чтобы устройства могли работать с операционной системой, нужны драйверы — специальные программы, которые объясняют системе, как работать с разными устройствами. Но во времена MS DOS драйверы работали с устройствами не напрямую, а через виртуальные файлы, и выглядело это примерно так:
- Система записывает в этот файл какие-то данные.
- Драйвер видит, что, например, в файл принтера поступили какие-то данные, и начинает их распечатывать.
Общее правило такое: файлы виртуальных устройств нужны для того, чтобы драйверам этих устройств было проще работать.
Эти файлы назывались так:
При этом неважно, большими буквами будет это написано или маленькими — в MS DOS регистр букв был некритичен.
Эти названия зарезервированы системой, поэтому пользователь их не может использовать для своих нужд. А как только в MS DOS кто-то попытается создать папку или файл с таким именем, то система сразу выдаст ошибку.
Теперь поговорим о том, почему эта особенность MS DOS мешает нам создавать папки и файлы в Windows. Как это часто бывает в ИТ, всё дело в обратной совместимости.
Обратная совместимость
Первые версии Windows были графической оболочкой. Версия 3.1, на основе которой потом будет сделана Windows 95, стала полноценной и самостоятельной операционной системой, но всё равно она была основана на MS DOS. Оттуда же перешли и файлы виртуальных устройств, чтобы приложения для MS DOS могли запускаться на Windows 3.1.
Дальше были Windows 95, Windows NT, Windows 98, Vista и XP — все они базировались на одной и той же внутренней логике, которая включала себя ту самую изначальную логику MS DOS. Всё ради того, чтобы на этих системах можно было запускать старые программы.
Когда Microsoft разрабатывали новое семейство операционных систем, начиная с Windows 7 и заканчивая Windows 11, им пришлось добавить поддержку старых программ, чтобы сохранить совместимость с теми миллионами программ, которые уже вышли для Windows. А для этого они взяли код из старых версий, который был написан ещё для поддержки программ MS DOS.
Именно по этой причине в Windows 11 до сих пор нельзя создать папку «Con» — это сделано для того, чтобы сегодня можно было запускать софт тридцатилетней давности.
Чтобы было понятен масштаб связи современной Windows 10 с её старым прародителем Windows 3.1, посмотрите на этот скриншот: при выборе настроек базы данных открывается диалоговое окно, которое спроектировано для первой версии Windows:

А вот что было 30 лет назад (почти тот же интерфейс):

Зачем поддерживать старый софт?
В мире очень много оборудования и систем, которые работают на старом софте. Софт старый потому, что его компании-разработчики могли закрыться, обанкротиться, прекратить поддержку старого софта; или разработчик просто состарился и умер; или женился, завёл детей и уехал в загородное поместье. А железо осталось: на электростанциях, промышленных предприятиях, в госучреждениях и страшно представить где ещё.
Если Microsoft решит в одночасье отключить поддержку всего этого старого софта и железа, то все эти старые системы могут начать сыпаться. А так как они подпирают важные инфраструктурные вещи (особенно в США), никто этого не хочет.
Поэтому до сих пор в недрах самой современной Windows теплится код, который обрабатывал файлы устройств тридцать лет назад.
Все о реестре Regedit / All about registry
Home
HKEY_LOCAL_MACHINE
Работа с веткой HKEY_LOCAL_MACHINE
Файлы и папки которые нельзя создать в Windows ? / The files and folders which cannot be created in Windows ?
Файлы и папки которые нельзя создать в Windows ? / The files and folders which cannot be created in Windows ?
14.11.2017 13:39 Администратор
Очередная статья в ветке HKLM. Знаете ли вы о том, что есть имена которые зарезервированы в системе для устройств ?
Создать файл или папку с определенным названием невозможно.
Для примера попробуйте создать папку с названием —
AUX
Система выдаст ошибку — «Указано неверное имя устройства»
Посмотреть некоторые зарезервированные имена для устройств можно в разделе —
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices]
Отмечу, что по значениям указанным ниже мне удалось создать папку —
MAILSLOT
PIPE
UNC
По всем остальным значениям, а именно —
AUX
NUL
PRN
Просто создать папку не получилось.
Есть хитрость как создать папки с зарезервированными именами.
Для этого нужно открыть командную строку (Win+R — > В окне Выполнить напишите cmd)
Для создания папки AUX в окне командной строки напечатайте —
mkdir \\.\c:\AUX
Для удаления папки напечатайте
rmdir \\.\c:\AUX
В указанном выше разделе я нашел не все зарезервированные значения. Есть еще например —
CON
LPT
COM1 по COM9
LPT1 по LPT9
Данные значения тоже зарезервированы. Думаю что не стоит создавать папки с названием портов.
Операционной системе — следовало бы выдавать сообщение, что данное имя зарезервировано системой.
Думаю вы согласны, что это было бы понятно для пользователя. С какой целью выдается сообщение «Указано неверное имя устройства» для меня пока остается загадкой.
Another article in the HKLM branch. Did you know that there are names which are reserved in the system for
To create a file or folder with a specific name it is impossible.
For example, try to create a folder with the name
AUX
The system will give an error «incorrect device name»
To see some reserved names for devices in the section —
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices]
Note that the values listed below I was able to create the folder —
MAILSLOT
PIPE
UNC
For all other values, namely —
AUX
NUL
PRN
Just create the folder failed.
Is there a trick how to create folders with reserved names.
To do this, open a command prompt (Win+R — > In Run window write cmd)
To create a folder AUX in the command prompt window type —
mkdir \\.\c:\AUX
To delete the folder type
rmdir \\.\c:\AUX
In the above section, I found not all the reserved values. There are for example —
CON
LPT
COM1 — COM9
LPT1 — LPT9
These values are also reserved. I think that it is not necessary to create a folder called ports.
The operating system should display a message that the name is reserved by the system.
I think you agree that it would be understandable for the user. For what purpose get the message «incorrect device name» for me remains a mystery.
