Bir Windows Dizini'nden 100.000 dosyayı kaldırmanın en iyi yolu nedir


12

Tek bir dizinde 100.000'den fazla dosyaya sahip bir kullanıcı vardı. Explorer belleği doldururken makine çökebilir ve makine kilitlenir ve uzun süre kullanılamaz hale gelir. Dizini ve içeriği boşaltmanın basit bir yolu var mı? Deltree komut satırını kullanmayı denedik ve bu çok daha iyi dikiş yapmadı.

DaveF

Ekstra -

Aynı kullanıcıyla (aslında istemci) birkaç kez bu sorunu yaşadık. Bir program, çalışması sırasında 100 binlerce geçici dosya oluşturur. Program düzgün çalışıyorsa, bununla bittiği için yavaşlama kaldırıldığından önemli değildir. Ama her seferinde dosyaların karışıklığını bırakarak ölüyor. Rmdir ve del etc yöntemlerini kullanmayı denedik ve explorer kullanmaktan daha hızlılar, ancak genellikle aynı sorunlarla karşılaşıyoruz. Bölüm zarar görür, açıklanamayan kilitli bir dosya vardır, bazı dosyalarda silme çalışmasını durduran bir izin sorunu vardır. Normalde bu sorun bir yeniden başlatma ile giderilebilir, ancak bu durumda bu, üretim zamanında yapamayacağımız kritik bir sistemdir. Unix'te sadece bir rm -rf vb. Yapabilirsiniz ve bu hızlıdır ve genellikle bununla ilgili gerçek bir sorun yoktur.

BTW - uygulama değiştiriliyor ancak bu bir süre için üretime geçmeyecek ve bu sorun muhtemelen başkaları için ilginçti.

Güncelleme - sistemde MKS Fındıkkıranımız olduğu için (komut satırı yardımcı programları olmadan) programcıya basit bir rm'yi bir araya getirdik. Bu del / deltree vb daha hızlı birkaç emir var. Ben standart bir windows sistem yöneticisi aracı olarak kolayca kullanılabilir böyle basit bir uygulama olduğunu garip buluyorum.


Yanıtlar:


15

Şunları kullanabilirsiniz rmdir:

rmdir /s /q FOLDERNAME

Bayraklar: /sözyinelemeli silme anlamına gelir /q, "sessiz" moddur.


Bunu denedik - soruya daha fazlasını ekleyeceğim.
David Allan Finch

bu senin için çalışmalıydı. İşe yaradı mı ?
s_ruchit

evet çoğunlukla - yukarıdaki soruda gördüğümüz sorunları ekledim. yorumun için teşekkürler.
David Allan Finch

Bu cevabı kabul edeceğim. Ancak daha basit bir unix tarzı rm kullanmak için daha iyi bir çözüm var, ancak bu çoğu kullanıcı için aviable olmadığından, kullanıcıların% 99'u için en iyi seçimdir. Windows için, özyinelemeli olarak silen başka bir şey yapmayan bir unix tarzı rm olmalıdır. BTW programcılarımız MKS remove_tree (yukarıya bakın) rmdir'i çöpe attı, bu yüzden sorun Windows değil yerleşik uygulamalar.
David Allan Finch

6

Yönetmekte olduğum sunucularda bu sorunu yaşıyorum. Explorer'ı tamamen atlayın ve komut istemini kullanın. Klasöre gidin ve "del . "

Bu şekilde GUI (explorer çöp kutusu) ve Geri Dönüşüm Kutusu'nun ek yükünü önlersiniz.


Bunu denedik - soruya daha fazlasını ekleyeceğim.
David Allan Finch

4

Eski 16 bit uygulamalar için buna ihtiyacınız yoksa, kısa dosya adı oluşturmayı devre dışı bırakarak performansı artırmaya çalışın. Bu, çok sayıda dosya içeren dizin işlemleri üzerinde önemli bir etkiye sahip olabilir.

Regedt32 select:
"HKLM\system\CurrentControlSet\Control\FileSystem\NtfsDisable8dot3NameC
reation"=1

Sonra kullan:

RMDIR / S / Q [sürücü:] yol

dizini tüm dosyalarıyla kaldırmak için.


Bunu bilmek ilginç.
David Allan Finch


3

Bu geçici klasörü farklı bir sürücüye / bölüme taşımaya ne dersiniz? Tüm çöpleri silmek yerine sürücüyü biçimlendirebilirsiniz (GUI veya komut satırı). Hızlı formatta, bu oldukça hızlı olmalıdır.


1
Bunu denedik ve bazen buna izin vermezdi. İstemci artık programı her seferinde farklı bir dizinde çalıştırmaktadır.
David Allan Finch

Yol ve sürücü arasında bir sabit bağlantı oluşturun, yani: "c: \ aptal uygulamam \ dosyaların saklandığı" sabit bağlantısı X sürücüsünü işaret eder: bir başlangıç ​​toplu
işinde

2

Bu, önceki yayınların bir kombinasyonudur

bir komut penceresi açın:
File -> Run -> cmd

Dizini kaldır
rmdir /s /q FOLDERNAME

VEYA

Bir dosya desenini kaldırma
cd \....\directory
del *.[something]

Sorunuzda belirttiğiniz gibi, Windows Explorer işleri gerçekten yavaşlatabilir.

Güncellemenizi gördükten sonra,
bu dosya kaldırıcıların listesine göz atın


Bunu geçmişte sadece birkaç 100'lü dosya ile fark etmiştim, explorer'ın komut satırı uygulamaları kadar hızlı bir şekilde yapılabileceği bir utanç - istemciyi kendileri yapmasını sağlayabiliriz. Cevabınız için teşekkürler.
David Allan Finch

1

Del ve rm'den daha iyi bir şeyim yok, ancak çok uzun zaman alsalar bile, bölüm hasarına neden olmamalıdır. Kilitli dosyalar, onları oluşturan programın beklenmedik bir şekilde ölmesi olabilir.

Bazen dosyalar silinemese de, başka bir geçici alt dizine taşınabilirler. Sadece bir _todel alt dizini oluşturup oraya taşıyorum. Dizinin tamamını dosyaların kendisinden ziyade bir düzey yukarı taşırsam genellikle daha iyi çalışır.

Bunun dışında, silme işlemlerini hızlandırmanın tek yolu sabit diski birleştirmektir. Geçici bir geçici çözüm, bu dizini bir samba paylaşımına taşımak veya taşınabilir bir USB sabit diske NTFS bağlantısı kullanmak olabilir. (Küçük bir bölüm tüm sabit diski kullanmaktan daha iyi ve daha hızlı olacaktır). Daha sonra sabit diski çıkarabilir ve başka bir bilgisayarda hızlı bir format yapabilirsiniz.


Bence bu - IE hasarlı dosyalar ama neden NT Çekirdek tarafından kapalı değil? Hız, programla ilgili bir sorundur, bu nedenle Samba veya USB sabit disk kullanmak başlangıç ​​değildir. Ancak müşterinin her çalışma için ayrı bir bölüm oluşturması ve yeniden biçimlendirmesi önerildi. Henüz denemiş olup olmadıklarından emin değilim. - Teşekkürler
David Allan Finch

1

Dosyaları silmekten zarar görmüş bir bölüm mü? Silinmekte olan dosya sayısına bakılmaksızın diskte önemli bir sorundur.

Kilitli olana rastlayıncaya kadar komut satırını silme ve silme işlemini deneyebilirim. Ardından , bu dosyada hangi işlemin açık olduğunu bulmak için İşlem Gezgini'ni kullanın. Bu işlemi (mümkünse) öldürün ve silme işlemini tekrar yapın. Durulayın, tekrarlayın :)


Bunu denemek istiyorum ama makineye doğrudan erişimimiz yok ve uygulama öldü. Yine de teşekkürler.
David Allan Finch

1

'Live' Linux CD'sini (rm -rf) kullanarak yeniden başlatın


Bu sunucuyu istemci için kritik olduğu için yeniden başlatamayız - ancak cevap için teşekkürler.
David Allan Finch

1

Biraz hacky, ama dosyaları siler yığın bir komut dosyası oluşturabilirsiniz, ben biçimini bilmiyorum, ama az harflerle başlayan dosyaları varsayarsak, yapabilirsiniz

deltree /y a*
deltree /y b*
...
deltree /y z*

seçim kaldırma yönteminizle deltree değiştirin. muhtemelen daha yavaş, ama daha az hata eğilimli?

sidenote: Ayrıca, rm gibi komutları almak için cygwin'i yüklemeyi deneyebilirsiniz; bu, muhtemelen bir dosyada bir hatayla karşılaştıktan sonra bile dosyaları silmeye devam eder.


Bu denendi ama gerçekten sorunu çözmedi - yine de teşekkürler.
David Allan Finch

Ayrıca MKS Nutcracker yüklüdür, ancak güvenlik nedeniyle komut satırı kaldırıldığında yardımcı olur - seçim değil. Ama yaptığımız şey kendi rm yazmak ve bu işe yarıyor.
David Allan Finch

1

Her şeyden önce çeşitli yöntemler çalışır. Bir parmak sürücüye cygwin yüklüyse, onu yerel USB'nize takabilir, cygwin kabuğunuzu ateşleyebilir ve yukarıda belirtildiği gibi RM komutunu çalıştırabilirsiniz. Bu, unix esnekliğini elinizin altında tutmanın kullanışlı bir yoludur.


Sistemi yönetirken bu makul bir çözümdür.
David Allan Finch

1

Ayrıca kurtarma konsoluna veya bu satırlardaki bir şeye önyükleme yapabilirsiniz. Bu, işletim sistemiyle ilgili garip sorunları tamamen görmezden gelmelidir.


Maalesef sunucuyu yeniden başlatamıyoruz ama cevap için teşekkürler.
David Allan Finch

1

Klasörü bir linux makineden monte edin ve oradan özyinelemeli silme yapın.

# mount -t cifs //server/share /mnt/tobedeleted -o username=yourshareusername

# rm /mnt/tobedeleted/* -R

Dosyaları düzenli aralıklarla silmek için bir cron işi bile kullanabilirsiniz.


bunu denedin mi
David Allan Finch

1

Neden sadece robocopy kullanmıyor ve boş bir dizini yansıtmıyor?

Boş bir klasör oluşturun ve şunu kullanın:

ROBOCOPY C:\ThisIsAnEmptyFolder C:\Users\SomeUser\Desktop\SomeFolderWithTempFiles /MIR

0

Diğer önerilerin hiçbiri işe yaramıyorsa, G / Ç'nizi hızlandırmayı düşündünüz mü?

Daha iyi kontrol cihazları, daha hızlı diskler satın alın ..

Veya merak ediyorum, eğer dosyalar geçici (ima ettiğiniz gibi) ve boyutlar izin veriyorsa, kutuya ekstra RAM ekleyebilir (ucuz) ve bir RAM diski kurabilir misiniz?

En iyi durumda, büyük miktarda dosya silinirken performans düşmeyecektir. En kötü durumda, yeniden başlatma bölümü temizler.


Seviyorum ama istemci herhangi bir programın yeni bir sürümünü bekledikleri gibi kabuk olacak sanmıyorum - cevap için teşekkürler.
David Allan Finch

İngiltere'deki sunucu RAM'i şu anda gigabayt başına yaklaşık 10 GBP'dir.
tomfanning

Doğru ama müşteri makine için X (bir teklif) ödeme ve Y daha fazla harcamak için bir neden görmüyor.
David Allan Finch

Belirtilen sunucu işi yeterince iyi yapmadığından mı?
tomfanning

Bu iş için yeterince iyi. Sorun programın düzeltilmesi sürecinde olan bir hata var olmasıdır. Artık para harcamayacaklar.
David Allan Finch

0

Kesip geri dönüşüm kutusuna yapıştırmayı deneyin, her dosyayı taşımayı denemeyi atlamalıdır. Ancak çöp kutusunu boşaltmak için ne yapacağından emin değilim, çünkü muhtemelen her dosyanın üzerine gidecek.


İstemci bunu denedim ve normalde Explorer kullanmaktan daha iyi değildi düşünüyorum. Teşekkürler
David Allan Finch

0

ÜST KARAKTER + DEL ile silme hızı açısından herhangi bir fark yaratıyor mu?


En son denediğimde çok aynıydı.
David Allan Finch

Aslında eski bir kurulumla tekrar denedim ve hala bekliyorum. Muhtemelen vazgeçeceğim ve MKS rm'yi kullanacağım.
David Allan Finch
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.