hapus direktori rekursif yang dibuat oleh robocopy ketika “Nama file terlalu panjang”


9

Setelah menjalankan robocopy.exe untuk membuat cadangan folder C: \ Users \ tanpa menggunakan /xjsakelar, saya berakhir dengan direktori rekursif yang terlalu panjang. Misalnya, jika Anda menjalankan dir /b /sAnda akan menerima kesalahan berikut:

Nama direktori C: \ Users \ ... \ AppData \ Local \ Data Aplikasi \ Data Aplikasi \ Data Aplikasi \ Data Aplikasi \ Data Aplikasi \ Data Aplikasi \ Data Aplikasi \ Data Aplikasi \ Data Aplikasi \ Aplikasi Data \ Aplikasi Data \ Aplikasi Data terlalu panjang.

Saya mencoba menghapusnya rmdir "Application Data" /stetapi saya menerima pesan kesalahan "Nama file terlalu panjang"

Saya telah melihat solusi lain, tetapi saya pikir saya mungkin dapat menggunakan alat yang menyebabkan masalah untuk menyelesaikannya .

Jawaban:


14

Buat direktori kosong dengan mkdir empty, lalu gunakan robocopy empty\ "Application Data\" /mir"yang akan menghapus seluruh pohon direktori. Kemudian keluarkan a rmdir emptydan rmdir "Application Datauntuk membersihkan dan Anda selesai.


3
+1 Tidak dapat dipercaya bahwa ini membutuhkan sesuatu yang misterius untuk melakukan sesuatu yang sederhana seperti menghapus folder ...
nextgentech

Folder rekursif tak terbatas yang buggy ini membuatku gila! Terima kasih.
Zofren

4

Anda mungkin dapat cdturun cukup dalam ke direktori untuk menghapus apa yang ada di bawah dan cdkembali ke atas lagi dan menghapus apa yang tersisa.

Jika itu tidak berhasil dan Anda masih macet, unduh versi demo gratis dari shell Hamilton C saya (pengungkapan penuh: saya penulisnya) dan gunakan rmutilitas yang menyertainya menggunakan -r(rekursif) dan -x(hapus apa pun) ) pilihan.

rm -rx directoryname

Saya rmmenggunakan format nama file Unicode panjang yang baru secara internal, memungkinkannya untuk memanipulasi jalur hingga 32 ribu karakter, dan itu akan membuatnya.

Jika Anda menemukan masalah juga melibatkan izin, Anda mungkin perlu menggunakan sudoatau sumengangkat, misalnya,

sudo rm -rx directoryname

Dalam kasus yang benar-benar keras kepala, Anda mungkin dihalangi oleh ACL yang mencegah akses, misalnya, caclslaporan Everyone:(DENY). Dalam hal ini Anda mungkin perlu menghapus ACE itu (entri kontrol akses).

cacls directoryname /e /r everyone

Akhirnya, saya benar-benar ingin ini membantu. Log server saya memberi tahu saya bahwa orang sedang mengunduh perangkat lunak saya untuk mencoba ini dan saya ingin ini berfungsi. Jika Anda menemukan kasus yang tidak cocok, saya harap Anda menjangkau untuk memberi tahu saya agar saya dapat men-debug mengapa dan membuatnya berfungsi. Hal-hal yang tidak dapat Anda hapus sering terjadi dan saya ingin semua kasus terlindungi.


3

Anda juga dapat mencoba salah satu dari yang berikut;

Resolusi 1: Gunakan nama 8.3 yang dibuat secara otomatis untuk mengakses file

Resolusi 2: Ganti nama atau pindahkan folder yang dalam

Resolusi 3: Memetakan drive ke folder dalam struktur path Memetakan drive ke folder di dalam struktur path file atau folder target. Metode ini memperpendek jalur virtual.

Resolusi 4: Gunakan jaringan berbagi yang sedalam folder Jika Resolusi 1, 2, dan 3 tidak nyaman atau tidak menyelesaikan masalah, buat jaringan berbagi yang sedalam mungkin di pohon folder yang Anda bisa, dan kemudian ganti nama folder dengan mengakses share.

Resolusi 5: Gunakan alat yang dapat melintasi jalur yang dalam

http://support.microsoft.com/kb/320081


solusi ini tampaknya merupakan jenis "Resolusi 5: Gunakan alat yang dapat melintasi jalur yang dalam"
Aaron
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.