Mengapa saya tidak bisa memberi nama folder atau file 'CON' di Windows?

30

Di semua versi Windows, kami tidak dapat mengganti nama file atau nama folder karena CONtanpa perangkat lunak penggantian nama file pihak ketiga. Mencoba melakukan ini di Windows 7 menghasilkan kesalahan:

Nama perangkat yang ditentukan tidak valid.

Mencoba menyimpan file seperti con.txtpada Notepad mengarah ke kesalahan serupa:

Nama file ini dicadangkan untuk digunakan oleh Windows.
Pilih nama lain dan coba lagi.

Mengapa kita tidak bisa memberi nama file atau folder CONdi Windows?

hari
sumber

Jawaban:

35

"con" adalah nama perangkat I / O sistem, konsol.

  • menipu
  • berbuat salah
  • nul

Dan beberapa lainnya, saya pikir.

Di masa lalu itu biasa di DOS untuk membuat file (dan saya masih melakukan ini sesekali) dengan:

C:\>copy con foo.txt
I'm typing some text here.
^Z
    1 file(s) copied.
C:\>
JMD
sumber
Koreksi kecil: err tidak dicadangkan. Daftar lengkap nama perangkat yang dicadangkan adalah: con, nul, prn, com1..9, dan lpt1..9. Mereka bahkan dicadangkan ketika digunakan dengan ekstensi apa pun (misalnya con.txt).
efotinis
"kecuali kita menggunakan peranti lunak penamaan ulang" Tentang bagian yang dikutip, bagaimana "peranti lunak
pergantian
1
Saya ketahuan. Saya ragu bahwa "penggantian nama perangkat lunak" apa pun dapat melakukannya. Tetapi jika bisa, saya akan khawatir bisa membuka atau bahkan memindahkan file. Seperti yang Anda katakan, OS akan mengambil masalah dengannya.
JMD
11
Daftar master ada di msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx Jangan gunakan nama perangkat yang dicadangkan berikut untuk nama file: CON, PRN, AUX, NUL, COM1 , COM2, COM3, COM4, ​​COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT5, LPT6, LPT7, LPT8, dan LPT9. Hindari juga nama-nama ini diikuti segera oleh ekstensi; misalnya, NUL.txt tidak disarankan.
shf301
1
@Sathya: Dengan menggunakan awalan \\? \ Untuk mem-bypass parsing nama file. Misalnya, "\\? \ C: \ con \ nul.txt".
grawity
13

CONadalah nama yang disediakan di Windows. Jadi yang PRN, AUX, NUL, LPT1dan lain-lain.

Pablo Santa Cruz
sumber
2
CON adalah kependekan dari konsol. Buka jendela command prompt, arahkan ke direktori dengan file teks dan ketik "copy file.txt con" Ini akan menulis konten file teks ke konsol (jendela prompt perintah)
Keltari
12

saya memberikan jawaban ini ke duplikat, dan saya pikir saya akan mempostingnya di sini untuk referensi Anda:

seperti yang dinyatakan sebelumnya. itu kata cadangan dari MS-DOS, untuk perangkat CONsole (sejauh yang saya ingat). tetapi, Anda dapat memaksa windows / dos untuk membuat folder untuk Anda . untuk perangkat, ia menggunakan format \\.\[RESERVED_WORD]untuk mengakses "file" (perangkat ini menggunakan file untuk komunikasi). untuk memaksa windows membuat folder Anda, alih-alih melakukan mkdir [RESERVED_WORD], lakukan hal berikut:

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

misalnya, untuk membuat folder CON di desktop saya,

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

untuk menghapus folder, Anda harus merujuknya dengan cara yang sama, atau tidak akan berfungsi.

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

saran saya adalah menggunakan nama yang berbeda. akan sangat sulit untuk selalu merujuknya melalui jalur absolutnya, terutama jika Anda sedang mengembangkan aplikasi yang Anda rencanakan untuk digunakan.

maranas
sumber
4

Ini karena digunakan untuk mewakili "perangkat internal". Namun, Anda dapat membuat folder ini menggunakan perintah berikut di prompt perintah:

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

Folder ini tidak dapat dihapus melalui klik kanan, hapus. Anda harus menggunakan perintah berikut (lagi di prompt perintah):

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

Sumber: http://yhisham.blogspot.in/2012/09/mystery-about-con-folder-in-windows.html

pengguna1662177
sumber
3

Selain jawaban Pablo Santa Cruz , berikut adalah daftar lengkap kata kunci yang digunakan oleh Windows secara internal dan dicadangkan. Semua yang berikut ini tidak sensitif huruf

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

Anda dapat menggunakan _consebagai gantinya

RafaSashi
sumber
2

Anda dapat mengganti nama tanpa menggunakan perangkat lunak khusus, cukup prompt perintah:

Sebagai contoh:

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

Setelah \\?\path lengkap harus ditentukan.

Bupati
sumber
0

Sama seperti ada karakter yang tidak dapat digunakan dalam nama file , ada juga beberapa kata (seluruh nama file) yang tidak dapat digunakan karena dicadangkan.

Synetech
sumber
0

copy conadalah metode kuno (MS-DOS) untuk membuat file teks. Sebagai contoh:

copy con output.txt

Jadi itu adalah kata yang dilindungi undang-undang dan tidak dapat digunakan sebagai nama folder di Windows.

Mehper C. Palavuzlar
sumber
0

Seperti yang disebutkan, Anda dapat membuat dan memanipulasi file dan folder dengan nama yang dicadangkan di baris perintah dengan menggunakan perangkat atau nama file seperti \\.\C:\NUL, tetapi lihat apa yang terjadi ketika Anda mencoba mengakses file atau folder seperti itu melalui Windows Explorer:

Kesalahan membuka folder bernama NUL Kesalahan menghapus folder bernama NUL

Setiap akses ke objek dengan nama perangkat yang dilindungi diperlakukan sebagai merujuk ke perangkat yang ditentukan oleh nama itu, kecuali jika Anda menggunakan solusi namespace yang disebutkan di atas. Kesalahan ini terjadi karena Windows mencoba untuk beroperasi pada mereka seolah-olah mereka folder normal, tetapi Anda tidak dapat membuka perangkat bernama NUL, CON, atau sebaliknya sebagai folder-maka Incorrect functionkesalahan (yang mirip dengan Inappropriate ioctl for devicekesalahan pada Linux).

bwDraco
sumber
3
Anda sedikit mencampuradukkan terminologi. \\.\…adalah namespace perangkat Win32 , \\?\…adalah nama file Win32 (juga untuk folder) namespace , dan \\compname\…merupakan jalur UNC ( jaringan ) .
Synetech
@ Sinetech: Dikoreksi.
bwDraco