27

Во всех версиях Windows мы не можем переименовать файл или имя папки в CON без стороннего программного обеспечения для переименования файлов. Попытка сделать это в Windows 7 приводит к ошибке:

Указанное имя устройства недействительно.

Попытка сохранить файл как con.txt в блокноте приводит к аналогичной ошибке:

Это имя файла зарезервировано для использования Windows.
Выберите другое имя и попробуйте снова.

Почему мы не можем назвать файл или папку CON в Windows?

9 ответов9

32

"con" - это имя системного устройства ввода-вывода, консоли.

  • против
  • заблуждаться
  • NUL

И пару других, я думаю.

В старые времена в DOS было обычным делом создавать файл (и я до сих пор делаю это время от времени) с:

C:\>copy con foo.txt
I'm typing some text here.
^Z
    1 file(s) copied.
C:\>
12

CON - зарезервированное имя в Windows. Таковы PRN , AUX , NUL , LPT1 и другие.

11

я дал этот ответ дубликату, и думал, что выложу его сюда для справки:

как ранее заявлено. это зарезервированное слово из MS-DOS, для устройства консоли (насколько я помню). но вы можете заставить Windows / DOS создать папку для вас. для устройств используется формат \\.\[RESERVED_WORD] для доступа к "файлу" (эти устройства использовали файлы для связи). чтобы заставить windows создавать вашу папку, вместо mkdir [RESERVED_WORD] , сделайте следующее:

mkdir \\.\[absolute path to folder of choice, including drive letter]\[RESERVED_WORD]

например, чтобы создать папку CON на моем рабочем столе,

mkdir \\.\C:\Users\me\Desktop\CON

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

rmdir \\.\C:\Users\me\Desktop\CON

Мой совет, хотя бы просто использовать другое имя. было бы очень трудно всегда ссылаться на него по его абсолютному пути, особенно если вы разрабатываете приложение, которое планируете развернуть.

4

Это потому, что он используется для представления "внутренних устройств". Однако вы можете создать эту папку, используя следующую команду в командной строке:

C:\>md \\.\e:\con

Эта папка не может быть удалена с помощью правого клика, удалить. Вы должны использовать следующую команду (снова в командной строке):

C:\>rd \\.\e:\con

Источник: http://yhisham.blogspot.in/2012/09/mystery-about-con-folder-in-windows.html

3

В дополнение к ответу Пабло Санта-Круза, здесь приведен полный список ключевых слов, используемых Windows для внутренних целей и зарезервированных. Все перечисленное ниже нечувствительно к регистру

  • ПРОТИВ
  • PRN
  • AUX
  • COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, COM0
  • LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9, LPT0

Вы можете использовать _con вместо

2

Вы можете переименовать его без использования какого-либо специального программного обеспечения, просто в командной строке:

Например:

C:\>echo Test > \\?\C:\con
C:\>type \\?\C:\con
Test
C:\>rename \\?\C:\con test.txt
C:\>type test.txt
Test

После \\?\ должен быть указан полный путь

0

Как уже упоминалось, вы можете создавать и управлять файлами и папками с зарезервированными именами в командной строке, используя пространство имен устройства или имени файла, например \\.\C:\NUL , но посмотрите, что происходит, когда вы пытаетесь получить доступ к такому файлу или папке через проводник Windows:

Ошибка открытия папки с именем NUL Ошибка удаления папки с именем NUL

Любой доступ к объекту с зарезервированным именем устройства рассматривается как относящийся к устройству, указанному этим именем, если только вы не используете вышеупомянутый обходной путь пространства имен. Эти ошибки возникают из-за того, что Windows пытается работать с ними, как если бы они были обычными папками, но вы не можете открыть устройство с именем NUL , CON или иным образом в виде папки - отсюда ошибка Incorrect function (которая аналогична « Inappropriate ioctl for device ошибки устройства в Linux).

0

Так же, как есть символы, которые нельзя использовать в имени файла, есть также несколько слов (целые имена файлов), которые нельзя использовать, потому что они зарезервированы.

0

copy con - это архаичный (MS-DOS) метод создания текстового файла. Например:

copy con output.txt

Так что это зарезервированное слово и не может использоваться в качестве имени папки в Windows.

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