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?

hari
źródło

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:\>
JMD
źródło
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.

Pablo Santa Cruz
źródło
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ć.

marany
źródło
4

Jest tak, ponieważ służy do reprezentowania „urządzeń wewnętrznych”. Można jednak utworzyć ten folder za pomocą następującego polecenia w wierszu polecenia:

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

Tego folderu nie można usunąć za pomocą kliknięcia prawym przyciskiem myszy, usunięcia. Musisz użyć następującego polecenia (ponownie w wierszu polecenia):

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

Źródło: http://yhisham.blogspot.in/2012/09/mystery-about-con-folder-in-windows.html

użytkownik1662177
źródło
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

RafaSashi
źródło
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ę.

Regent
źródło
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.

Synetech
źródło
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.

Mehper C. Palavuzlar
źródło
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).

bwDraco
źródło
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