Laman » bagaimana untuk » Mengapa Adakah Pelaporan Windows Folder Ini Terlalu Panjang Untuk Salin?

    Mengapa Adakah Pelaporan Windows Folder Ini Terlalu Panjang Untuk Salin?

    Sekiranya anda bekerja dengan Windows cukup lama, terutamanya dengan folder dan fail yang mempunyai nama yang panjang, anda akan mengalami ralat yang pelik: Windows akan melaporkan bahawa laluan folder atau nama fail terlalu panjang untuk dipindahkan ke destinasi baru atau juga padam. Apakah perjanjian nya?

    Hey How-To Geek!

    Jadi pada hari yang lain, saya menyusun semula beberapa fail pada komputer saya, membuat folder, jenis barang semacam itu. Kemudian, apabila saya memindahkan beberapa fail ke folder, saya mendapat mesej, menyatakan bahawa laluan folder yang dihasilkan akan terlalu lama. Saya keliru. Saya tahu bahawa setiap OS tunggal sejak DOS menyokong Long Filename, namun Windows mendakwa bahawa jalan terlalu panjang? Mengapa ini berlaku??

    Ikhlas,

    Encik terancang

    Masalah yang anda jalani adalah persimpangan yang tidak disenangi dua sistem yang, dalam kes seperti ini, menghasilkan ralat. Untuk memahami dengan tepat di mana kesilapan itu datang, kita perlu menggali sejarah Long Filename (LFN) dan bagaimana Windows berinteraksi dengan mereka sebelum kita menyelidiki penyelesaian.

    Long Filename telah diperkenalkan, melalui senibina MS-DOS yang mendasari, di Windows 95. Sistem LFN yang baru membenarkan nama fail dan direktori sehingga 255 aksara. Ini merupakan perkembangan yang baik dari sistem nama fail sebelumnya, biasanya dipanggil 8.3 filename kerana nama itu terhad kepada lapan aksara dan lanjutan tiga digit, tetapi juga dikenali sebagai Nama Fail Pendek (SFN). Seperti yang anda boleh bayangkan, pada masa itu terdapat banyak aplikasi berasaskan DOS di sekeliling dan terdapat lebih daripada beberapa sakit kepala yang cuba mendapatkan LFN yang lebih baru dan SFN warisan untuk bermain dengan baik antara satu sama lain. Sekiranya anda pernah jumpa disket atau CD-ROM yang lebih lama dengan fail-fail yang dipenggalkan secara aneh di atasnya (seperti abcdef ~ 1.txt), nama fail dipotong oleh aplikasi legasi SFN yang menggunakan beberapa LFN yang lebih lama dan tidak disokong (seperti abcdefghijk. txt).

    Walau bagaimanapun, kami jauh dari pertengahan tahun 1990-an, dan keseluruhan nama Filename Panjang (untuk sebahagian besar) tegas disetrika. Sekiranya anda menjalankan versi Windows dari 10 tahun yang lalu, anda mungkin tidak pernah menemui konflik panjang nama fail seperti yang kita gunakan untuk kembali ke dalam DOS / Windows 95 hari. Yang berkata, kami masih menghadapi cegukan, seperti yang anda temui dengan projek pembersihan cakera anda. Tapi kenapa? Jika sistem Nama Filer Panjang Windows menyokong folder dan nama fail sehingga 255 aksara setiap komponen, apakah dinding yang anda jalani? Kita tidak boleh menyalahkan NTFS (sistem fail yang digunakan kebanyakan mesin Windows moden) kerana NTFS akan menyokong folder folder dan nama fail sehingga panjang laluan total 32,767 aksara. Itu jauh melebihi struktur direktori biasa yang kebanyakan pengguna perlukan.

    Di mana semuanya runtuh adalah sekatan buatan Windows susunan di atas sistem LFN / NTFS: pembolehubah MAX_PATH. Pembolehubah MAX_PATH menentukan struktur direktori lengkap di Windows tidak dapat melebihi 260 aksara, termasuk huruf pemacu, titik usus, backslash, dan backlash nada pada akhir. Oleh itu, anda hanya mempunyai MAX_PATH sebenar sebanyak 256 aksara, contohnya. C: \ your-256-character-path \.

    Jadi apa yang berlaku ketika anda membersihkan komputer anda ialah bahawa anda mempunyai direktori dengan jalan yang sudah lama (sama ada nama folder sudah lama, nama fail sudah lama, atau kedua-duanya), dan apabila anda cuba untuk memindahkan satu atau lebih direktori tersebut ke direktori lain dengan jalan yang panjang, jumlah panjang nama jalan melampaui batas 260 aksara yang dikenakan oleh pembolehubah MAX_PATH.

    Sekarang, anda mungkin berfikir "Ah-hah! Kami hanya akan menukar pembolehubah MAX_PATH dan menyelesaikan masalah! "Alas, itu bukan perkara yang mudah. Bukan hanya pembolehubah MAX_PATH yang pada asasnya keras dikodkan ke dalam Windows, tetapi walaupun anda mengalami kesulitan yang besar untuk menukarnya, anda akan berhenti berbuka sehingga tidak sepadan. Terlalu banyak aplikasi mengharapkan pembolehubah laluan menjadi apa yang telah ditetapkan oleh Windows. Kita tidak boleh pergi sekadar menukarnya tanpa membuat keadaan huru-hara yang besar.

    Di manakah itu meninggalkan kamu? Nah, penyelesaian paling mudah adalah dengan hanya mengedit data laluan. Sebagai contoh, jika anda mempunyai satu tan artikel yang disimpan di mana aplikasi / pelanjutan yang anda gunakan untuk menyimpannya dari web membuat direktori yang tajuk penuh artikel + artikel yang diterajui, dan kemudian nama fail itu sendiri adalah tajuk penuh artikel + artikel yang membawa, ia akan menjadi sangat mudah untuk memukul atau melebihi MAX_PATH dengan menyimpan satu. Mengedit folder besar dan tajuk artikel ke saiz yang lebih munasabah adalah cara mudah untuk menyelesaikan masalah ini.

    Jika anda mempunyai sejumlah besar fail dengan laluan yang panjang dan anda tidak mahu mengedit semuanya (atau jika anda mahu padam satu tan direktori lama yang terlalu lama untuk Windows untuk berurusan apabila dibatasi oleh pembolehubah MAX_PATH), ada kerja baris arahan di sekitar. Walaupun Windows dibatasi oleh pembolehubah MAX_PATH, jurutera Windows menyedari akan ada situasi di mana pengguna perlu menangani nama laluan yang lebih lama. Oleh itu, API Windows mempunyai fungsi untuk menangani laluan yang sangat panjang.

    Untuk memanfaatkan API itu dan gunakan alat baris arahan pada nama folder / nama fail anda yang berat, anda hanya perlu memasukkan nama direktori dengan beberapa aksara tambahan. Sebagai contoh, jika anda mempunyai struktur direktori besar yang anda mahu padam (tetapi menerima ralat disebabkan panjang laluan apabila anda mencubanya), anda boleh menukar arahan dari:

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

    kepada:

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

    Kuncinya ialah penambahan \\? \\? bahagian sebelum permulaan laluan fail; ini mengarahkan Windows untuk mengabaikan batasan yang dikenakan oleh pembolehubah MAX_PATH dan untuk berinteraksi dengan laluan yang anda hanya dibekalkan sebagai dibekalkan / difahami secara langsung oleh sistem fail yang mendasari (yang dengan jelas dapat menyokong laluan yang lebih panjang). Seperti biasa, berhati-hati pada arahan arahan untuk mengelakkan secara tidak sengaja memadam fail atau direktori yang anda ingin meninggalkan utuh.

    Sekiranya gambaran kami tentang isu ini yang anda ingin tahu, pasti digali ke dalam artikel ini dari perpustakaan Microsoft Developer Rangkaian, Penamaan Fail, Laluan dan ruang nama, untuk maklumat lanjut mengenai apa yang sedang berlaku di bawah hud.


    Mempunyai soalan berteknologi tinggi? Tembak kami e-mel di [email protected] dan kami akan melakukan yang terbaik untuk menjawabnya.