22Aug

Mengapa Pelaporan Windows Folder ini terlalu panjang untuk disalin?

Jika Anda bekerja dengan Windows cukup lama, terutama dengan folder dan file yang memiliki nama panjang, Anda akan mengalami kesalahan yang aneh: Windows akan melaporkan bahwa path folder atau nama file terlalu panjang untuk pindah ke tujuan baru atau bahkan menghapusnya..Apa kesepakatan

Hei Bagaimana-Untuk Geek!

Jadi, kemarin, saya mengatur ulang beberapa file di komputer saya, membuat folder, barang semacam itu. Kemudian, ketika saya memindahkan beberapa file ke dalam folder, saya mendapat pesan, yang menyatakan bahwa jalur folder yang dihasilkan akan terlalu panjang. Saya bingung. Saya tahu bahwa setiap OS sejak DOS mendukung Long Filenames, namun Windows mengklaim bahwa jalannya terlalu panjang? Mengapa ini terjadi?

Sincerly,

Mr Disorganised

Masalah yang Anda hadapi adalah persimpangan yang tidak menguntungkan dari dua sistem yang, dalam kasus seperti ini, menghasilkan kesalahan. Untuk memahami dengan pasti asal kesalahannya, kita perlu menggali sejarah Long Filenames( LFN) dan bagaimana Windows berinteraksi dengannya sebelum kita menyelidiki solusi.

Long Filenames diperkenalkan, melalui arsitektur MS-DOS yang mendasarinya, di Windows 95. Sistem LFN yang baru mengizinkan nama file dan direktori hingga 255 karakter. Ini adalah perluasan dari sistem nama file sebelumnya, yang biasanya disebut 8.3 filenaming karena namanya terbatas pada delapan karakter dan ekstensi tiga digit, tapi juga dikenal sebagai Short Filename( SFN).Seperti yang bisa Anda bayangkan, saat itu masih banyak aplikasi berbasis DOS dan ada lebih dari beberapa sakit kepala yang mencoba mendapatkan LFN yang lebih baru dan SFN warisan untuk bermain bagus satu sama lain. Jika Anda pernah menemukan disket atau CD-ROM yang lebih tua dengan file-file aneh yang terpotong di dalamnya( seperti abcdef ~ 1.txt), nama filename ditebang oleh beberapa aplikasi warisan SFN dari beberapa LFN yang lebih lama dan tidak didukung( seperti abcdefghijk.txt).

Kami jauh dari pertengahan 1990an, bagaimanapun, dan keseluruhan nama Panjang Nama adalah( sebagian besar) disetrika dengan kuat. Jika Anda menjalankan versi Windows dari 10 tahun terakhir, kemungkinan besar Anda tidak pernah menemukan konflik panjang nama file seperti yang biasa kami alami kembali dalam DOS / Windows 95 hari. Yang mengatakan, kita masih mengalami cegukan, seperti yang Anda temukan dengan proyek pembersihan disk Anda. Tapi kenapa? Jika sistem Windows 'Long Filename mendukung folder dan nama file hingga 255 karakter per komponen, dinding apa yang Anda gunakan? Kita tidak bisa menyalahkan NTFS( filesystem yang sebagian besar menggunakan mesin Windows modern) karena NTFS akan mendukung chaining folder dan nama file hingga total panjang jalan 32.767 karakter. Itu jauh melebihi struktur direktori tipikal yang paling dibutuhkan pengguna.

Di mana semuanya berantakan adalah tumpukan Windows restriksi buatan di atas sistem LFN / NTFS: variabel MAX_PATH.Variabel MAX_PATH menentukan bahwa struktur direktori lengkap di Windows tidak boleh melebihi 260 karakter total, termasuk huruf drive, titik dua, garis miring terbalik, dan tendangan balik nol di bagian akhir. Dengan demikian, Anda hanya memiliki MAX_PATH potensial sebenarnya dari 256 karakter, mis. C: \ your-256-character-path \ .

Jadi, apa yang terjadi saat Anda membersihkan komputer Anda adalah Anda memiliki sebuah direktori dengan jalur yang sudah panjang( entah karena nama foldernya panjang, nama filenya panjang, atau keduanya), dan ketika Anda mencoba memindahkan satu atau lebihdari direktori tersebut ke direktori lain dengan jalur panjang, total panjang nama jalur melebihi batas 260 karakter yang diberlakukan oleh variabel MAX_PATH.

Sekarang, Anda mungkin berpikir "Ah-hah! Kami hanya akan mengubah variabel MAX_PATH dan memecahkan masalah! "Sayangnya, itu tidak sesederhana itu. Tidak hanya variabel MAX_PATH yang pada dasarnya sulit dikodekan ke dalam Windows, namun bahkan jika Anda mengalami kerumitan yang luar biasa untuk mengubahnya, Anda akan akhirnya melanggar begitu banyak sehingga tidak akan sia-sia. Terlalu banyak aplikasi mengharapkan variabel jalur menjadi seperti yang sudah lama ditentukan oleh Windows. Kita tidak bisa begitu saja mengubahnya tanpa menimbulkan kekacauan besar.

Mana yang meninggalkan Anda? Nah, solusi yang paling sederhana adalah dengan hanya mengedit data jalur. Misalnya, jika Anda memiliki satu ton artikel tersimpan di mana aplikasi / ekstensi yang Anda gunakan untuk menyimpannya dari web membuat sebuah direktori yang merupakan judul lengkap artikel + artikel yang dipimpin, dan kemudian nama file itu sendiri adalah judul lengkapdari artikel + petunjuk artikel, akan sangat mudah untuk memukul atau melampaui MAX_PATH dengan sekali simpan. Mengedit folder dan judul artikel yang sangat besar itu ke ukuran yang lebih masuk akal adalah cara mudah untuk memperbaiki masalahnya.

Jika Anda memiliki sejumlah besar file dengan jalur panjang dan Anda tidak ingin mengedit semuanya( atau jika Anda ingin menghapus satu ton direktori lama yang terlalu panjang untuk ditangani oleh Windows saat dibatasi olehMAX_PATH variabel), ada baris perintah bekerja di sekitar. Meskipun Windows dibatasi oleh variabel MAX_PATH, insinyur Windows menyadari akan ada situasi dimana pengguna perlu berurusan dengan nama jalur yang lebih panjang. Dengan demikian, API Windows memiliki fungsi untuk menangani jalur yang sangat panjang.

Untuk memanfaatkan API dan menggunakan alat baris perintah pada map / file nama yang tidak tepat, Anda cukup menambahkan nama direktori dengan beberapa karakter tambahan. Misalnya, jika Anda memiliki struktur direktori besar yang ingin Anda hapus( tapi menerima kesalahan karena panjang jalur saat Anda mencobanya), Anda dapat mengubah perintah dari:

rmdir c: \ documents \ some-really-super-long-folder-name-scheme \

ke:

rmdir \\? \ c: \ documents \ some-really-super-long-folder-name-scheme \

Kuncinya adalah penambahan bagian \\? \sebelum dimulainya jalur file;ini menginstruksikan Windows untuk mengabaikan keterbatasan yang diberlakukan oleh variabel MAX_PATH dan berinteraksi dengan jalur yang baru saja Anda sediakan sebagai yang disediakan / dipahami secara langsung oleh sistem file yang mendasari( yang jelas dapat mendukung jalur yang lebih panjang).Seperti biasa, berhati-hatilah pada command prompt untuk menghindari secara tidak sengaja menghapus file atau direktori yang ingin Anda tinggalkan secara utuh.

Jika ikhtisar masalah ini membuat Anda penasaran, jelaskan artikel ini dari perpustakaan Microsoft Developer Network, Naming Files, Paths, dan Namespaces, untuk informasi lebih lanjut tentang apa yang terjadi di bawah tenda.

Punya pertanyaan teknologi yang mendesak? Tembak kami email di [email protected] dan kami akan melakukan yang terbaik untuk menjawabnya.