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?


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:\>

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.


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.



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


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.


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.


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.


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).


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.