Mengapa Windows Melaporkan Folder Ini Terlalu Panjang untuk Disalin?

Mengapa Windows Melaporkan Folder Ini Terlalu Panjang untuk Disalin?
Mengapa Windows Melaporkan Folder Ini Terlalu Panjang untuk Disalin?

Video: Mengapa Windows Melaporkan Folder Ini Terlalu Panjang untuk Disalin?

Video: Mengapa Windows Melaporkan Folder Ini Terlalu Panjang untuk Disalin?
Video: Google Titan Security Key Bundle | How to Set Up Advanced Online Protection - YouTube 2024, April
Anonim
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?
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!

So the other day, I was reorganizing some files on my computer, creating folders, that kind of stuff. Then, when I was moving some files into a folder, I get a message, stating that the resulting folder path would be too long. I was confused. I know that every single OS since DOS supports Long Filenames, yet Windows claims that the path is too long? Why does this happen?

Sincerly,

Mr. Disorganized

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, kemungkinan besar Anda tidak akan pernah menemukan konflik panjang nama file seperti yang kami gunakan untuk kembali ke DOS / Windows 95 hari. Yang mengatakan, kami masih mengalami cegukan, seperti yang Anda temukan dengan proyek pembersihan disk Anda. Tapi kenapa? Jika sistem Long Filename Windows mendukung folder dan nama file hingga 255 karakter per komponen, dinding apa yang Anda hadapi? Kami tidak dapat 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 menentukan bahwa struktur direktori lengkap di Windows tidak boleh melebihi total 260 karakter, 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 menyelesaikan masalahnya!”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 banyak file dengan jalur panjang dan Anda tidak ingin mengedit semuanya (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:documentssome-really-super-long-folder-name-scheme

untuk:

rmdir \?c:documentssome-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 ikhtisar 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.

Direkomendasikan: