Dlaczego nie mogę nazwać folderu lub pliku „CON” w systemie Windows?


30

We wszystkich wersjach systemu Windows nie jesteśmy w stanie zmienić nazwy pliku lub folderu, tak jak CONbez oprogramowania do zmiany nazw plików innych firm. Próba wykonania tego w systemie Windows 7 powoduje błąd:

Podana nazwa urządzenia jest nieprawidłowa.

Próba zapisania pliku con.txtw Notatniku prowadzi do podobnego błędu:

Ta nazwa pliku jest zarezerwowana do użytku przez system Windows.
Wybierz inną nazwę i spróbuj ponownie.

Dlaczego nie możemy nazwać pliku lub folderu CONw systemie Windows?


Odpowiedzi:


35

„con” to nazwa systemowego urządzenia we / wy, konsoli.

  • kon
  • błądzić
  • nie

I kilka innych, jak sądzę.

W dawnych czasach w DOS powszechne było tworzenie pliku (i robię to czasami) z:

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

Drobna korekta: err nie jest zastrzeżone. Pełna lista zarezerwowanych nazw urządzeń to: con, nul, prn, com1..9 i lpt1..9. Są nawet zarezerwowane, jeśli są używane z dowolnym rozszerzeniem (np con.txt.).
efotinis

„o ile nie użyjemy oprogramowania do zmiany nazwy” W części cytowanej, w jaki sposób „oprogramowanie do zmiany nazwy”
obejdzie

1
Masz mnie. Jestem sceptyczny, że każde „oprogramowanie do zmiany nazwy” może to zrobić. Ale jeśli to możliwe, martwiłbym się możliwością otwarcia lub nawet przeniesienia pliku. Jak powiedziałeś, system operacyjny będzie miał z tym problem.
JMD

11
Lista główna znajduje się na msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx Nie używaj następujących zastrzeżonych nazw urządzeń dla nazwy pliku: CON, PRN, AUX, NUL, COM1 , COM2, COM3, COM4, ​​COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8 i LPT9. Unikaj także tych nazw, po których następuje natychmiast rozszerzenie; na przykład NUL.txt nie jest zalecane.
shf301,

1
@Sathya: Za pomocą przedrostka \\? \ Można pominąć parsowanie nazw plików. Na przykład „\\? \ C: \ con \ nul.txt”.
grawity

13

CONjest zastrzeżoną nazwą w systemie Windows. Więc są PRN, AUX, NUL, LPT1i inne.


2
CON jest skrótem od konsoli. Otwórz okno wiersza polecenia, przejdź do katalogu z plikiem tekstowym i wpisz „copy file.txt con”.
Spisze

12

podałem tę odpowiedź duplikatowi i pomyślałem, że opublikuję ją tutaj w celach informacyjnych:

jak już wspomniano. to zarezerwowane słowo z powrotem w MS-DOS, dla urządzenia CONsole (o ile pamiętam). ale możesz zmusić system Windows / DOS do utworzenia folderu . w przypadku urządzeń używa formatu, \\.\[RESERVED_WORD]aby uzyskać dostęp do „pliku” (urządzenia te używały plików do komunikacji). aby zmusić system Windows do utworzenia folderu, zamiast tego mkdir [RESERVED_WORD]wykonaj następujące czynności:

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

na przykład, aby utworzyć folder CON na moim pulpicie,

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

aby usunąć folder, musisz odwołać się do niego w ten sam sposób, w przeciwnym razie nie zadziała.

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

radzę jednak użyć innej nazwy. bardzo trudno byłoby zawsze odwoływać się do niego bezwzględną ścieżką, szczególnie jeśli tworzysz aplikację, którą planujesz wdrożyć.



3

Oprócz odpowiedzi Pablo Santa Cruz , tutaj jest pełna lista słów kluczowych używanych wewnętrznie przez Windows i są zastrzeżone. Wszystkie poniższe elementy nie uwzględniają wielkości liter

  • KON
  • PRN
  • AUX
  • COM1, COM2, COM3, COM4, ​​COM5, COM6, COM7, COM8, COM9, COM0
  • LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9, LPT0

Można użyć _conzamiast


2

Możesz zmienić nazwę bez użycia specjalnego oprogramowania, wystarczy wiersz polecenia:

Na przykład:

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

Po \\?\należy podać pełną ścieżkę.


0

Tak jak istnieją znaki, których nie można użyć w nazwie pliku , istnieje również kilka słów (całe nazwy plików), których nie można użyć, ponieważ są zastrzeżone.


0

copy conjest archaiczną (MS-DOS) metodą tworzenia pliku tekstowego. Na przykład:

copy con output.txt

Jest to więc słowo zastrzeżone i nie można go używać jako nazwy folderu w systemie Windows.


0

Jak wspomniano, możesz tworzyć i manipulować plikami i folderami o zastrzeżonych nazwach w wierszu poleceń, używając urządzenia lub przestrzeni nazw takich jak \\.\C:\NUL, ale spójrz na to, co się stanie, gdy spróbujesz uzyskać dostęp do takiego pliku lub folderu za pomocą Eksploratora Windows:

Błąd podczas otwierania folderu o nazwie NUL Błąd podczas usuwania folderu o nazwie NUL

Każdy dostęp do obiektu z zastrzeżoną nazwą urządzenia jest traktowany jako odnoszący się do urządzenia określonego przez tę nazwę, chyba że zastosujesz wspomniane obejście przestrzeni nazw. Błędy te występują, ponieważ system Windows próbuje działać na nich, jak gdyby były normalne foldery, ale nie można otworzyć urządzenie o nazwie NUL, CONlub inaczej jako folder-stąd Incorrect functionbłąd (który jest podobny do Inappropriate ioctl for devicebłędu w systemie Linux).


3
Trochę pomieszałeś terminologię. \\.\…jest Win32 urządzenie nazw , \\?\…to Win32 nazwa pliku (również dla folderów) nazw , i \\compname\…to UNC ( sieć ) ścieżka .
Synetech

@ Synetech: poprawiony.
bwDraco
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.