it-swarm.asia

Windows'da çok uzun bir dosya adı olan bir dosyayı nasıl silebilirim?

Eşim, bir şekilde sona eren dosyalara sahip, normal yollardan veya komut satırından silinememelerine neden olan (silinemez) birkaç dosya ve klasöre sahiptir. Klasör yapılarının derinliği nedeniyle dosya adlarının çok uzun olduğuna inanıyorum. Böyle dosyaları temizlemek için iyi bir yardımcı program bilen var mı?

200
user3048

Bir dizini tamamen silmek istediğinizde ve uzun yollar içerdiğinde, robocopy ÇOK iyi bir iş çıkarır:

mkdir empty_dir
robocopy empty_dir the_dir_to_delete /mir
rmdir empty_dir
rmdir the_dir_to_delete

Bu çalışır çünkü robokopi dahili olarak dosya yolları için \\?\ ön ekiyle Win32 işlevlerinin Unicode uyumlu sürümlerini kullanır ; bu işlevlerin 259 yerine 2¹⁶-1 (32,767) karakter sınırı vardır.

Tüm dosyalardan kurtulmak için bu işlemi bir kereden fazla yapmanız gerekebilir.

421
Benoit

Komut isteminden:

dir /X

Bu, dosyalarınızı/klasörlerinizi kısa ad biçiminde listeler. Ardından dosyayı silmek için tam olarak yazıldığı gibi kısa adı kullanın:

del LONGF~1.txt
90
Will Eddins

Ilerleyem her yol üst klasörünü "1" olarak değiştirip silmeye çalışarak yolumun üzerinde çalışıyorum. Her seferinde yolu etkili bir şekilde kısaltıyorsunuz ve sonunda tüm dizin yapısını silebilinceye kadar 4 veya 5 dizinden fazla çalışmak zorunda kalmamıştım (ki istediğiniz gibi olabilir veya olmayabilir). Bunu, son alt klasörden de yapabilir ve yukarı veya aşağı doğru çalışabilirsiniz.

53
joeqwerty

Komut İstemi (cmd.exe) dahil olmak üzere bazı programlarda, tam yolunu \\.\ ile önceden ekleyerek dosya uzunluğu sınırını aşabilirsiniz:

\\.\C:\some dizin\other dizin\uzun ada sahip bir dosya
13
grawity

Bir şeyi taşımak, kopyalamak veya silmek için "tam yol ve dosya adı" uzunluk sınırlamasını aşmak için kullandığım bir hile, yarı yolda (veya daha fazla) 'işaretli bir eşlenmiş sürücü harfi kullanarak' kırarak 'kısaltmaktır. yolun aşağısında bir klasör.

bu yüzden c:\some\long\path ...\ve\foo\bar\klasörleri\oldfiles\myoldfile.txt.

Ardından, yol boyunca bir yere rasgele bir sürücü harfi eşleyin, böylece yolun ilk bölümü yalnızca birkaç karakter uzunluğunda olur. Ön koşul - klasör paylaşılan bir klasörde olmalıdır (bu zaten bir sunucudaysa, bu işlemi yapmam gereken yerdeydi) ve önceden değilse, yolda bir klasör seçin. ve paylaşın. Ortamınıza ve paranoya seviyenize bağlı olarak, NTFS izinleri makul ölçüde kısıtlayıcı olduğu sürece herkesin paylaşıma erişimi değiştirmesine izin verin. İsterseniz, yalnızca kendi hesabınızdaki değişiklik haklarına izin verin.

Şimdi paylaşılan klasöre veya içindeki bir klasöre gidin ve paylaşın veya komut satırını aşağıdaki gibi kullanın. "Foo" klasörünü "fooshare" olarak paylaştığınızı varsayalım.

Net Use x: \\mycomputername\fooshare\bar\folders /persistent:no

ve X: sürücüsü şimdi doğrudan bu paylaşımın içindeki "klasörler" klasörünü gösteriyor, bu nedenle "x:\oldfiles\myoldfile.txt" şimdi oldukça kısa.

("/ Persistent: no", bir sonraki yeniden başlatma işleminde hayatta kalamayacağınız ve daha sonra sizi şaşırtmayacağınız anlamına gelir. Bittiğinde klasörünüzü paylaşmayı unutmayın.)

Unutmayın, dosyayı içeren klasörü mutlaka paylaşmak zorunda değilsiniz, zaten paylaşılan bir klasörün içindeyse, sadece ilepaylaşımını ve iç içe geçmiş klasörleri hedef bir klasöre yakındosya ve bu iyi çalışıyor.

Kullanıcıların klasör yapısında oldukça derin diskleri eşleştirdiğini fark ettiğimizde, iki sunucu arasında devasa bir robografi yaparken bu tekniği kullanmak zorunda kaldım, bu yüzden oradan 255 karakter kullanabildiler, ancak toplam dosya yolu uzunluğunu aştılar. Yerel sürücü kökünden erişildiğinde.

13
AdamV

Bulduğum en basit yol, bir ubuntu canlı CD'sinden başlatmak.

Alternatif olarak, yolun yarısında paylaşılan bir klasör oluşturabilir ve ardından bir ağ sürücüsünü buna eşleyebilir ve eşlenen klasörden (aynı makinede bile) silme işlemini yapabilirsiniz.

9
Col

Dosyayı kesip yapıştırın dizinini başka bir yere yeniden adlandırın ve silin. Burada çalışıyor.

Ya da sorundan kurtulmak istemiyorsanız Prompt komutundan.

5
Rook

Muhtemelen en iyi yol değil ve başkalarının ne ortaya çıktığını görmek istiyorum.

Bunu bir kez yaşadım ve şanssız bir şekilde birkaç şey denedim. İyi bir araç aramak yerine, Windows Diski yeniden başlattım, kurtarma konsoluna gittim ve oradan sildim. İlk kez çalıştı ve gerçekten çok iyi!

Ayrıca, sizin için bir Google yaptım ve şunu buldum - DelinvFile İyi Görünüyor ama buna kefil olamaz.

Düzenleme - Uyarı, sadece yukarıda görülen bir denemedir - Belki de ilk düşündüğüm kadar iyi değil!

1
William Hilsum