В операционной системе Windows нельзя создать папку с одним из следующих имен: AUX, CON, NUL, PRN, COM0-COM9, LPT0-LPT9, CLOCK$. Но почему? Никогда не пробовали? Давайте попробуем!
Запустив Проводник Windows при помощи меню «Пуск-Компьютер», в любом удобном месте на жестком диске щелкнув правой кнопкой мыши и выбрав в появившемся контекстном меню команду «Создать-Папку», попытаемся создать новую папку. Что же мы получаем в ответ?
Итак, при вводе в Проводнике Windows в качестве имени папки con, получаем сообщение об ошибке:
То есть, другими словами, Windows считает создаваемую папку неким устройством, которое якобы выдает ошибку. Действительно, история вопроса кроется в исторических корнях операционной системы. До того, как компания Microsoft разработала операционную систему Windows, существовала система DOS, которая выглядела примерно так же, как сейчас выглядит системная консоль Windows:
Как видим — здесь нет ни окон, ни курсора, ни рабочего стола. Есть только строка, куда можно вводить команды. Как же взаимодействовать с различными устройствами, которые подключаются к компьютеру — принтером, например? Очень просто. Каждому такому устройству назначалось системное имя. Принтеру — PRN (от Printer), мышь подключалась тогда к COM-порту и системное имя этого устройства было COM1. А монитор и клавиатура считались консолью — устройство CON. Спомощью специальных команд можно было выводить документ на печать на принтер — PRN, или на монитор — CON. Также вводимый текст можно было сохранять с клавиатуры — CON в файл. Таким образом CON, PRN, COM1 не были папками, а были специальными устройствами взаимодействия с пользователем.
Шли годы. Теперь, когда появилась Windows, пользователь может при помощи курсора мыши в окне текстового редактора при помощи многочисленных настроек определить, как он хочет распечатать документ, на какой принтер. Нет необходимости вручную печатать команды в строчке на черном экране. Казалось бы, должны бы уже уйти в небытие все эти CON, PRN, COM1. Ан нет. Для сохранения совместимости, чтобы старые программы, разработанные еще до появления Windows, работали, имена CON, PRN и COM1, а также некоторые другие, перечисленные в этой статье, стали зарезервированными. И нельзя создавать папки с этими именами — Windows будет раз за разом выводить сообщения об ошибке. Такая вот дань прошлому.