Jika Anda bekerja dengan Windows cukup lama, terutama dengan folder dan file yang memiliki nama panjang, Anda akan mengalami kesalahan yang ganjil: Windows akan melaporkan bahwa jalur folder atau nama file terlalu panjang untuk pindah ke tujuan baru atau bahkan menghapus. Apa masalahnya?
Hey How-To Geek!
Jadi pada hari yang lain, saya sedang mengatur ulang beberapa file di komputer saya, membuat folder, hal-hal semacam itu. Kemudian, ketika saya memindahkan beberapa file ke folder, saya mendapat pesan, 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?
Dengan tulus,
Tuan Tidak terorganisir
Masalah yang Anda hadapi adalah persimpangan yang tidak menguntungkan dari dua sistem yang, dalam kasus seperti ini, menghasilkan kesalahan. Untuk memahami dari mana kesalahan itu berasal, kita perlu menggali sejarah Long Filenames (LFN) dan bagaimana Windows berinteraksi dengan mereka sebelum kita menyelidiki solusi.
Long Filenames diperkenalkan, melalui arsitektur MS-DOS yang mendasarinya, di Windows 95. Sistem LFN baru memungkinkan untuk file dan nama direktori hingga 255 karakter. Ini adalah perluasan yang diterima dari sistem nama file sebelumnya, biasanya disebut 8,3 filenaming karena nama dibatasi hingga delapan karakter dan ekstensi tiga digit, tetapi juga dikenal sebagai Short Filename (SFN). Seperti yang Anda bayangkan, saat itu masih ada banyak aplikasi berbasis-DOS di sekitar dan ada lebih dari beberapa sakit kepala yang mencoba untuk mendapatkan LFN baru dan SFN warisan untuk bermain baik dengan satu sama lain. Jika Anda pernah menemukan disket yang lebih tua atau CD-ROM dengan file yang terpotong secara aneh di atasnya (seperti abcdef ~ 1.txt) nama file itu dipotong oleh beberapa aplikasi warisan menggunakan SFN dari beberapa LFN yang lebih lama dan tidak didukung (seperti abcdefghijk. txt).
Kami jauh dari pertengahan 1990-an, bagaimanapun, dan seluruh Long Filename hal (untuk sebagian besar) tersetrika kuat. Jika Anda menjalankan versi Windows dari 10 tahun terakhir, Anda mungkin tidak pernah menemukan konflik panjang nama file seperti yang kita gunakan untuk menjalankan kembali di DOS / Windows 95 hari. Yang mengatakan, kami 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 hadapi? Kita tidak bisa menyalahkan NTFS (sistem berkas yang digunakan sebagian besar mesin Windows modern) karena NTFS akan mendukung rangkaian folder dan nama file hingga total panjang jalur 32.767 karakter. Itu jauh melebihi struktur direktori khas yang paling dibutuhkan pengguna.
Di mana semuanya berantakan adalah tumpukan Windows restriction buatan di atas sistem LFN / NTFS: variabel MAX_PATH. Variabel MAX_PATH menetapkan bahwa struktur direktori lengkap di Windows tidak boleh melebihi 260 karakter total, termasuk huruf drive, titik dua, backslash, dan nol backlash di bagian akhir. Jadi, Anda hanya memiliki MAX_PATH asli yang potensial dengan 256 karakter, mis. C: \ Anda-256-karakter-path \.
Jadi apa yang terjadi ketika Anda membersihkan komputer Anda adalah bahwa Anda memiliki direktori dengan jalur yang sudah lama (baik karena nama folder yang panjang, nama file yang panjang, atau keduanya), dan ketika Anda mencoba untuk memindahkan satu atau lebih dari direktori tersebut ke direktori lain dengan jalur panjang, total panjang nama jalur melebihi batas 260 karakter yang dikenakan 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 dikodekan keras ke Windows, tetapi bahkan jika Anda melalui kerumitan besar untuk mengubahnya, Anda akhirnya akan melanggar begitu banyak sehingga tidak akan sepadan. Terlalu banyak aplikasi yang mengharapkan variabel path menjadi apa yang telah ditentukan oleh Windows. Kita tidak bisa seenaknya mengubahnya tanpa menciptakan kekacauan besar.
Di mana itu meninggalkanmu? Nah, solusi paling sederhana adalah hanya mengedit data jalur. Misalnya, jika Anda memiliki banyak artikel yang disimpan di mana aplikasi / ekstensi yang Anda gunakan untuk menyimpannya dari web membuat direktori yang merupakan judul lengkap dari artikel + judul artikel, dan kemudian nama file itu sendiri adalah judul lengkapnya dari artikel + petunjuk artikel, akan sangat mudah untuk mencapai atau melampaui MAX_PATH dengan satu penyimpanan. Mengedit folder besar dan judul artikel ke ukuran yang lebih wajar adalah cara mudah untuk memperbaiki masalah.
Jika Anda memiliki sejumlah besar file dengan jalur panjang dan Anda tidak ingin mengeditnya semua (atau jika Anda maumenghapus satu ton direktori lama yang terlalu lama untuk ditangani Windows ketika dibatasi oleh variabel MAX_PATH), ada pekerjaan baris perintah di sekitar. Meskipun Windows dibatasi oleh variabel MAX_PATH, insinyur Windows menyadari akan ada situasi di mana pengguna perlu berurusan dengan nama jalur yang lebih panjang. Dengan demikian, API Windows memiliki fungsi untuk menangani jalur yang sangat panjang.
Untuk memanfaatkan API tersebut dan menggunakan alat baris perintah pada folder / nama file yang berat, Anda hanya perlu menambahkan nama direktori dengan beberapa karakter tambahan. Misalnya, jika Anda memiliki struktur direktori besar yang ingin Anda hapus (tetapi menerima kesalahan karena panjang jalur saat Anda mencobanya), Anda dapat mengubah perintah dari:
rmdir c: \ documents \ some-really-super-long-folder-name-scheme \
untuk:
rmdir \? \ c: \ documents \ some-really-super-long-folder-name-scheme \
Kuncinya adalah penambahan \\?\
porsi sebelum dimulainya jalur file; ini menginstruksikan Windows untuk mengabaikan pembatasan yang dikenakan oleh variabel MAX_PATH dan untuk berinteraksi dengan jalur yang baru saja Anda berikan seperti yang disediakan / dipahami secara langsung oleh sistem file yang mendasarinya (yang dapat dengan jelas 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 gambaran umum kami tentang masalah ini membuat Anda penasaran, pasti gali artikel ini dari pustaka Microsoft Developer Network, Penamaan File, Jalur, dan Ruang Nama, untuk informasi lebih lanjut tentang apa yang terjadi di bawah terpal.
Punya pertanyaan teknologi yang mendesak? Tembak kami email di [email protected] dan kami akan melakukan yang terbaik untuk menjawabnya.