Cara menghapus file dengan path yang terlalu lama untuk dihapus [duplikat]

203

Saya sedang bekerja dengan beberapa kode sumber visi komputer yang saya temukan dan tidak menyadari bahwa itu menciptakan file cache yang memiliki nama SANGAT PANJANG dan sekarang saya tidak dapat menghapus keduanya.

Saya mencoba untuk mengubah nama menjadi nama yang lebih pendek tetapi saya tidak dapat melakukan apa pun pada file tersebut, saya juga mencoba untuk me-restart komputer saya dan melihat apakah itu akan hilang begitu saja.

Pesan kesalahan mengatakan:

Jalur Tujuan Terlalu Panjang.

Nama file akan terlalu panjang untuk folder tujuan. Anda dapat mempersingkat nama file dan mencoba lagi, atau mencoba lokasi yang jalurnya lebih pendek.

tangkapan layar

Bagaimana saya bisa menghapus file dalam hal ini?

Chris
sumber
Apakah ini akan bekerja dari baris perintah dengan delperintah? Sesuatu di sepanjang baris del *.cacheharus menghapus semua file .cache di direktori saat ini.
Ryan
"Path \ to \ folder \ CACHEI ~ Sistem tidak dapat menemukan file yang ditentukan" mengatakan bahwa dua kali dan ada 2 file di sana tetapi tidak melakukan apa
Chris
Setelah dipikir-pikir, Anda dapat memeriksa salah satu pertanyaan lain yang sudah dijawab. Yang ini misalnya.
Ryan
1
Jika dua file ini adalah satu-satunya yang tersisa di direktori, maka Anda mungkin lebih beruntung menghapus seluruh direktori. Dari command prompt, coba rd /s directoryname ini akan menghapus directorynamedan semua file / subdirektori di dalamnya, jadi gunakan dengan hati-hati :)
bitsmack

Jawaban:

353

Dengan asumsi Anda ada di windows:

Apa yang selalu saya lakukan adalah menggunakan subt untuk membuat asosiasi huruf drive dengan bagian jalan.

Lalu pergi ke huruf drive baru dan navigasikan ke file yang memiliki nama panjang. Anda sekarang harus dapat mengganti nama / menghapus / dll mereka. Alasan ini berhasil adalah karena jalur itu sendiri tidak lagi berisi> 255 karakter.

Untuk membuat folder subt

  1. Mulai prompt perintah (tidak diperlukan hak admin)
  2. Gunakan cduntuk menavigasi ke folder yang ingin Anda buka (Anda dapat menggunakan tabuntuk melengkapi nama secara otomatis
  3. ketik subst j: .untuk membuat asosiasi driveletter. (alih-alih. Anda juga dapat mengetikkan seluruh jalur)
  4. Sekarang di Explorer, Anda memiliki huruf drive baru di PC ini . Pergi ke sana dan lakukan apa pun yang perlu Anda lakukan pada file .cache.
  5. Kembali ke jendela cmd Anda dan ketik subst /d j:untuk menghapus drive atau, restart PC Anda.

EDIT: Trik yang saya pelajari yang bisa mempersingkat ini sedikit. Dari jendela Explorer di mana Anda mengalami masalah, klik bilah alamat sehingga Anda dapat mengetiknya, lalu ketik cmddan tekan Enteruntuk memulai prompt perintah di lokasi itu, kemudian lanjutkan ke langkah 3. :)

EDIT2: Oke, trik ini dapat diperluas lebih jauh. Jika Anda berada di explorer di jalan yang benar, cukup ketik di subst j: .bilah alamat dan tekan enter. Sebuah jendela perintah akan muncul, jalankan perintah dan tutup lagi, dan di sana Anda pergi, drive baru muncul di explorer.

LPChip
sumber
26
robocopy empty_dir base_nested_dir / purge - Cukup buat direktori kosong, dan beri tahu robocopy untuk membersihkan semua yang ada di direktori target yang tidak ada di direktori kosong stackoverflow.com/a/3320317/588759
rofrol
7
Baru saja mencoba ini dan saya tidak bisa menghapus file yang dimaksud .. Saya menggunakan cygwin dengan windows, solusi alternatifnya adalah menghapus file seperti itu: rm -R / path / in / question selama tidak ada program lain yang menggunakan file tersebut Anda baik untuk pergi
John
1
Saya punya masalah di mana SUBST tidak mengenali J: sebagai parameter (juga tidak melihat drive virtual yang tersedia) sehingga opsi cygwin yang disebutkan oleh John bekerja dengan baik.
Tisch
1
@rofrol, Anda harus membuat komentar robocopy Anda sebagai jawaban: itu jauh lebih mudah daripada melakukan pendekatan nama direktori ketika berurusan dengan banyak direktori anak (seperti yang dibuat di node_modules)
Andy Brown
1
Solusi John bekerja sangat baik untuk saya, baru saja menambahkan -f (parameter force): rm -R -f / pathToDelete
Christophe Keller
67

Pertanyaan Anda menanyakan cara menghapus file ketika nama file itu terlalu panjang. Jika path terlalu panjang dan bukan hanya nama file itu sendiri, Anda dapat dengan mudah mengganti nama folder untuk membuat path lebih pendek.

Tetapi untuk menghapus file yang namanya lebih dari 255 karakter:

  • Buka prompt perintah dengan menjalankan "CMD.EXE"
  • Arahkan ke folder yang menyimpan file
  • Gunakan perintah DIR / X yang akan menampilkan nama pendek file.
  • Hapus menggunakan nama pendek.

yaitu jika file tersebut bernama "verylongfilename.fil", nama pendek akan ditampilkan sebagai sesuatu seperti "verylo ~ 1.fil" dan Anda dapat menghapus menggunakan nama itu.

Harap dicatat bahwa meskipun Windows itu sendiri dapat menangani jalur yang jauh lebih panjang dari 255 karakter, sebagian besar GUI - seperti Windows Explorer - terikat oleh batas yang lebih pendek.

Debra
sumber
16
Ini adalah jawaban yang lebih baik daripada yang diterima pada.
Ben
3
Jawaban yang dipilih lebih baik karena Anda dapat menghapus seluruh folder dengan metode itu
mcont
2
tapi di windows 7 sepertinya DIR / x tidak mengubah tampilan sama sekali di sini ... :(
gumuruh
3
Beberapa sistem file NTFS TIDAK memiliki 8,3 yang setara. Jadi ini tidak selalu berhasil lagi.
Ross Presser
Del / S dari CMD bekerja untuk saya bahkan dengan nama besar pada tanggal 8.
Jeff
4

Googled: hapus nama file panjang Hasil pertama

Gunakan Unlocker http://www.filehippo.com/download_unlocker/

Tidak dapat menghapus folder: Digunakan oleh orang atau program lain. Tidak dapat menghapus file: Akses ditolak. Telah terjadi pelanggaran berbagi. File sumber atau tujuan mungkin sedang digunakan. File sedang digunakan oleh program atau pengguna lain. Pastikan disk tidak penuh atau dilindungi tulis dan file tersebut saat ini tidak digunakan.

Unlocker dapat membantu! Cukup klik kanan folder atau file dan pilih Unlocker. Jika folder atau file terkunci, daftar jendela loker akan muncul. Cukup klik Buka Kunci Semua dan Anda selesai!

Wutnaut
sumber
1
Saya memang melihat itu tetapi tidak tahu apakah unblocker aman digunakan sehingga saya mengabaikannya, saya akan mencobanya. EDIT: tidak bekerja. ini bekerja pada file lain tetapi pemblokiran tidak muncul di drop down
Chris
Tentunya cara paling sederhana untuk melakukannya, meskipun mungkin perlu reboot untuk menyelesaikannya. Tidak ada yang salah dengan Unlocker - telah menggunakannya selama bertahun-tahun dan ini adalah utilitas yang sangat berguna. Dalam kasus file atau folder yang lintasannya terlalu panjang tidak akan menemukan pegangan penguncian tetapi harus menawarkan opsi Hapus di drop down sesudahnya.
Steve Pettifer
1
Bekerja dengan sempurna - hal yang lucu adalah saya menginstal perangkat lunak ini tetapi tidak terpikir oleh saya untuk menggunakannya dalam situasi ini.
Daniel Sokolowski
Tidak berfungsi untuk folder lain tempat saya menyalin folder persimpangan melingkar, tetapi yang berhasil adalah mengganti nama setiap folder level menjadi satu karakter seperti 1semua jalan kemudian menghapusnya.
Daniel Sokolowski
Ini adalah satu-satunya jawaban yang bekerja untuk saya (saya menggunakan windows 10). Terima kasih banyak!
user26832
4

Microsoft memiliki artikel basis pengetahuan yang berguna tentang menghapus file yang tidak dapat dihapus . Penyebab # 4 relevan untuk Anda.

Taruhan terbaik Anda mungkin adalah memetakan drive ke folder yang ada dalam file (resolusi # 3), kemudian masuk melalui drive itu dan hapus.

Compro01
sumber
1
Saya tidak pernah menyadari sebelumnya bahwa saya dapat "memetakan drive jaringan" ke lokasi di hard drive saya sendiri. Itulah yang saya lakukan di Windows Explorer. Setelah menavigasi ke drive, saya dapat dengan mudah menghapus folder & konten. Prinsip yang sama dengan solusi konsol yang ditunjukkan di atas, tetapi ini adalah solusi GUI cepat yang lebih mudah bagi saya.
RandomHandle