10

Когда я создаю новую папку и переименовываю ее в nul она говорит, что The Specified device name is invalid.

затем я искал, какие еще папки мы не можем создать, и получил имена con , nul , prn ?

что означают эти имена? и почему мы не можем сделать папки с этими именами?

1 ответ1

31

Все начинается со старой команды PIP CP/M - эта команда, используемая для копирования файлов, позволяла указывать специальные имена устройств вместо файлов.

Гэри Килдалл, который разработал CP/M, основывал большую часть дизайна своей файловой структуры и командного процессора на операционных системах от Digital Equipment, таких как RSTS/E для PDP-11. Помимо доступа к файлам на гибком диске, команда PIP в CP/M также может передавать данные в и из следующих "специальных файлов":

CON: — console (input and output)
AUX: — an auxiliary device. In CP/M 1 and 2, PIP used PUN: (paper tape punch) and RDR: (paper tape reader) instead of AUX:
LST: — list output device, usually the printer
PRN: — as LST:, but lines were numbered, tabs expanded and form feeds added every 60 lines
NUL: — null device, akin to /dev/null
EOF: — input device that produced end-of-file characters, ASCII 0x1A
INP: — custom input device, by default the same as EOF:
OUT: — custom output device, by default the same as NUL:

Однако это не были настоящие файлы устройств, потому что их обработка была ограничена PIP.

Затем в начале 80-х появился DOS, клон 80 / CP CP / M, предназначенный для работы на новом IBM PC. DOS расширил эту концепцию немного дальше - выше были "специальные файлы", и их можно было указывать везде, где ожидался файл в командах DOS. Таким образом, встроенная команда copy DOS может быть использована для печати документа, выполнив команду copy myfile.txt prn: (Более поздние версии CP / M могли бы сделать это, но я сомневаюсь в этом.)

Перенесемся в Windows 95. Сам код, работающий с этими особыми именами, сохранился, но сам по себе был построен поверх DOS, но, очевидно, не был слишком хорошо интегрирован в GUI-часть Windows 95. Это вызывало некоторые проблемы, такие как ошибка CON\CON, и это также вызывало проблемы с IE.

Вероятно, из-за паранойи дальнейших скрывающихся ошибок (хотя в версиях Windows для Windows NT их не должно быть), Microsoft решила сделать это там, где Explorer всегда отклоняет любую попытку создать файл с таким именем. Забавно, что даже в системе Windows 8, которую я сейчас использую, я все еще не могу создать папку с именем «con». (Windows 10 все еще не позволит вам сделать это).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .