Системные имена con, nul, prn, AUX, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9

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

con
lpt1
lpt2
lpt3
lpt4
lpt5
lpt6
lpt7
lpt8
lpt9
com1
com2
com3
com4
com5
com6
com7
com8
com9
null
prn
aux

Столкнулся недавно с подобной проблемой, пользователи из под Linux создали себе общую папку на сетевом ресурсе с именем con (типа контракты), но под Windows случился затык. Хорошо что я знал про эти исключения и понимал в какую сторону рыть, но все таки это отняло какое то время.
Поэтому я решил скопипастить себе список этих исключений, и методы борьбы с ними.

Запрещенные имена остались со времен DOS, когда некоторые сочетания знаков были зарезервированы для системных команд.
Если вы попытаетесь создать файлы или папки со следующими именами: con, nul, prn, AUX, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9 (регистр букв – прописные буквы или строчные – значения не имеет), – система в таких случаях вместо введенного вами «запрещенного» имени выведет имя по умолчанию, например, Новая папка, или Текстовый документ, или Документ Microsoft Word. При этом Windows Vista и более старше версии выведут окно «Переименование» с сообщением «Указано неверное имя устройства».

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

Но используя UNC пути (Universal Naming Convention) все же возможно создать папку с запрещенным именем, набрав в командной строке, к примеру:

mkdir \\.\C:\windows\lpt1

После этого в папке Windows на диске C: будет создана папка lpt1.

Для того, чтобы ее удалить требуется опять же прибегнуть к UNC, написав:

rmdir \\.\C:\windows\lpt1

Аналогично создаются и удаляются файлы.

Смотрите так же:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.