Silme dosyalarını oldukça büyük bir ada zorla


62

Yazdığım programların bağımlılıklarını yönetmek için düzenli olarak Node.js kullanıyorum, önemli değil. Bugün böyle bir klasör yapısına sahip oldum:görüntü tanımını buraya girin

Herhangi bir dosyayı silmeye çalışırken bu hatayla karşılaşıldı:

Kaynak dosya adları, dosya sistemi tarafından desteklenenden daha büyük. Bu işlemi denemeden önce, daha kısa bir yol adına sahip bir yere gitmeyi deneyin veya daha kısa adlara yeniden adlandırmayı deneyin.

Zaten C: \ 'de öyleydi, bu yüzden daha kısa olmayacaktı.



Klasör yapınızın nasıl bu kadar büyüdüğü hakkında bir fikriniz var mı?
eran otzer

1
@ eranotzer, npm kullanılarak.
Seiyria,

paketlerinizde bağımlılıkları yapmadım.json nerede yanlış yazılmış?
eran otzer

@eranotzer Evet. Npm @ 2'nin nasıl çalıştığı nedeniyle, her bağımlılık bağımlılıklarını bunun içine yerleştirmiştir. Bu, bağımlılık zincirlerinin keyfi olarak uzun olabileceği anlamına geliyordu. Npm @ 3, bu davranışı ayarlamak istiyor.
Seiyria,

Yanıtlar:


75

Microsoft aracını kullanın robocopy.exe.

  1. Yeni bir boş klasör oluşturun, örneğin c:\empty
  2. Ardından, bu boş klasörü silmeye çalıştığınız uzun dosya adlarını içeren klasöre kopyalayın, örn c:\myannoyingfolder. Komut isteminde bunu yapın:

    robokopi / MIR c: \ boş c: \ myannoying klasörü


Bu benim iş akışımın bir parçası olduğundan, çoğu zaman Windows kabuğuna nasıl entegre edeceğimi buldum. Aşağıdaki cevaba bakınız. :)
toddmo

Not: Bu komutun tamamlanması birkaç saniye, hatta birkaç dakika sürebilir. O yüzden endişelenme ve sihri yapmasına izin ver :-)
Adil Malik

Teşekkürler, benim için çalıştı. Ayrıca dosyalardan birinde tutulan herhangi bir işlemi (IIS) de öldürdüğümden emin olmalıydım.
Slick Shinobi

Robocopy.exe dosyasını açmaya çalıştığımda, bir saniye boyunca bir pencere yanıp sönüyor ve sonra hiçbir şey olmuyor. Lütfen yardım
Maulik Modi

29

Tamam, bir ağacı silmek istediğinizi D:\very\long\pathvarsayalım, Robocopy gibi bir araç kullanmanız gerekmez.

  1. Silemediğiniz dizini içeren sürücünün kök dizinine gidin.
  2. Tek bir harf adı ile bir dizin oluşturun, örneğin D:\a
  3. Bu durumda silmek istediğiniz dizinin içine gidin. D:\very\long\path
  4. Tümünü seç ( Ctrl+ A) ve Kes ( Ctrl- X)
  5. Yeni oluşturduğunuz klasöre gidin
  6. Yapıştır ( Ctrl- V)
  7. Şimdi, kök dizine gidin ve bu durumda temp klasörünü silin. D:\a
  8. Sonra geri dönün ve orijinal dizini silin

2
Bu benim için ilk denemede benim için işe yaramadı. Ancak bu prosedürü tekrarladıktan sonra birkaç klasör seviyesinden daha fazlasını silebildim.
abaldwin99

1
Harika bir çözüm, kusursuz çalıştı. Basit ve etkili, teşekkür ederim!
Caner Öncü

HARİKA!! tıkır tıkır çalışıyor!!! başka bir alete gerek yok. Teşekkürler!
Prasanth KC

Bu harika çalışıyor ve ben buna bir nokta ekleyeceğim: eğer yoldan dosya seçmek işe yaramazsa, uzun yolun ortasında bir yerde bir klasör seçebilir ve bu klasörü yerine temp klasörüne taşıyabilir ve silebilirsiniz. ikisi de benzer şekilde.
Narayana Nagireddi

4

Bu sorunu yazmaya çok sayıda komut çalışırken yazmaya başladım, del /Fve rmdir /S(ayrıca geri dönüşüm kutusunu atlamayı denemek için silerken tutmaya devam etmek de dahil ). Ben düşünüyorum rmdir /Sben yaprak düğümleri olan klasörleri silmeye devam edebildi bu yüzden aslında o ağaca bir seferde birkaç düğümleri ilerliyor, tüm dosyaları silindi. Sonunda hepsini temizledim ama bu çok saçma.


4

Bu işlevselliği Windows kabuğuna entegre edebilirsiniz. Flo'nun cevabını geliştirmem, yorum yapmak için çok uzundu.

DeleteWindows bağlam menüsüne bir komut ekledim .

görüntü tanımını buraya girin

delete.regDosya klasörleri ilişkilendirmek kayıt defteri girdilerini ekler robodelete.battoplu dosya.

delete.reg

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\Delete]

[HKEY_CLASSES_ROOT\Directory\shell\Delete\command]
"Extended"=""
@="\"D:\\Documents\\robodelete.bat\" \"%1\""

robodelete.bat

mkdir c:\empty
robocopy /MIR c:\empty %1
rmdir %1
rmdir c:\empty

Not : Her iki dosyadaki yolları da tercihlerinize göre değiştirmeniz gerekebilir.

UYARI : Bu komutu geri almanın bir yolu yoktur. Geri dönüşüm kutusunu kullanmaz ve Y / N'yi klasörü imha etmeden önce onaylamasını istemez!


uyarı için teşekkürler. Buna benim iş akışımda da ihtiyacım var, ancak sağ tıklama menümde Y / N onayına sahip olmayan bir nükleer düğmeden kaçınmak istiyorum. Zamanım olursa, bu düzenlemeyi yaparken bir çekim yapacağım ve bir düzenleme önereceğim.
abaldwin99

1
@ abaldwin99, belki bunun gibi stackoverflow.com/a/1807318/1045881
toddmo

4

SuperDelete açık kaynaklı komut satırı aracı ( GitHub ), diğer seçenekler başarısız olduktan sonra benim için çalıştı (Windows 10).



0

Çoğu durumda, bir komut isteminden dizine CD yapmak ve DEL kullanarak çalışacaktır.

Değilse, adınızı dizin ağacında YUKARI olarak çalışmak zorundasınız: en düşük seviyedeki klasörü daha kısa bir adla (örn. "A"), ardından bir sonraki yüksek klasör adını ve böylece toplam yol yeterince kısalıncaya kadar yeniden adlandırın. Aşağıdan yukarıya doğru çalışarak, daima nihai dosyalardan daha kısa tam yolu olan adları değiştirirsiniz.


0
  • Yönetici komut istemini aç
  • net use z: c:\path
  • del z:\*.*

Buna göre ince ayar yapın. Z: rahatsız edici yolu eşlemek için sadece keyfi bir sürücü harfidir. Bu son silme komutu, eşlediğiniz WHOLE dizini siler - bu yüzden gerektiği kadar spesifik olun.


2
Bu, güçlü olmayan kullanıcılar için çok tehlikelidir! Yanlış yapılırsa sürücüyü silme potansiyeli vardır.
Rudi Strydom

% 100 kabul edildi. Kesinlikle bu konuda dikkatli devam edin.
Bradley Forney,

0

Güzel bir yol pendrive'da önyüklenebilir Linux'a sahip olmak ve canlı CD'lerden problemsiz dosyaları silmek .


-1

Aynı sorunu yaşadım ve kendimi buldum, sadece ana klasörü yeniden adlandırın. Ör. "Bizim Klasör Eğer D " gibi Sürücü D: // Klasör / Undelete_Folder . Yapmanız gereken tek şey ana Klasör adını " a " olarak yeniden adlandırabilecek kadar küçük olmalıdır . o zaman konumunuz D: // a / Undelete_folde r olacaktır. ve sonra Üst Klasörü silin.


Bu sadece zorunlu olarak çalışmaz (küçültme ile bile hala daha büyükse ne olur?), Aynı zamanda klasörümün sürücünün kök dizininde olduğunu açıkça belirtmiştim.
Seiyria

-2

Eğer hepsi hataysa

Dizedeki son dizine gidin. Dosyaları kesin Dize 4. veya 5. dosya içine yapıştırın. Sonra [Shift] + [Delete] numarayı yapmalı.

Bir Test Geri Yükleme Dosyasını DPM yedeklemesinden silerken yukarıda belirtilen komut isteminde çalıştırılma konusunda şüpheliydim.

Bu yardımcı olur umarım.


Bu büyük olasılıkla işe yaramaz, çünkü kesim işlemi için hala bu uzun dosya yoluna sahip olurlar .
Seiyria
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.