Ich habe eine Windows XP-Box mit einer NTFS-Festplatte und das Löschen großer Dateien ist extrem langsam. Wenn ich einen Ordner auswähle, der eine große Anzahl von Dateien in einem Ordnerbaum enthält, und lösche (mit Umschalt-Entf, um den Papierkorb zu speichern), dauert es eine Weile, die direkt proportional zur Anzahl der Dateien im Ordner zu sein scheint, bevor dieser gerade ist öffnet das Bestätigungsfeld. Das Löschen jeder Datei im Ordner dauert dann noch länger.
Gibt es eine Möglichkeit, einen Ordner in Windows zu löschen, ohne dass die benötigte Zeit proportional zur Anzahl der darin enthaltenen Dateien ist?
Antworten:
Ich denke nicht, aber einige Methoden sind deutlich schneller als andere.
Am schlimmsten ist es, sie in den Papierkorb zu verschieben: Sie müssen sie noch löschen. Das nächste Problem ist Shift + Delete mit Windows Explorer: Es kostet viel Zeit, den Inhalt zu überprüfen, bevor mit dem Löschen begonnen wird.
Als nächstes verwenden Sie am besten
rmdir /s/q foldername
die Befehlszeile.del /f/s/q foldername
ist auch gut, aber es hinterlässt die Verzeichnisstruktur.Das Beste, was ich gefunden habe, ist eine zweizeilige Batch-Datei mit einem ersten Durchgang zum Löschen von Dateien und Ausgaben an nul, um den Overhead beim Schreiben auf den Bildschirm für jede einzelne Datei zu vermeiden. Ein zweiter Durchlauf bereinigt dann die verbleibende Verzeichnisstruktur:
Dies ist fast dreimal schneller als ein einzelnes rmdir, basierend auf Zeittests mit einer mit Windows XP verschlüsselten Festplatte. Das Löschen von ~ 30 GB / 1.000.000 Dateien / 15.000 Ordnern
rmdir
dauert ~ 2,5 Stunden unddel+rmdir
~ 53 Minuten. Mehr Infos hier .Dies ist eine normale Aufgabe für mich, daher verschiebe ich normalerweise das zu löschende Material nach C: \ stufftodelete und habe diese
del+rmdir
Befehle in einer Stapeldatei deletestuff.bat. Dies soll nachts laufen, aber manchmal muss ich es tagsüber laufen lassen, je schneller desto besser.quelle
> nul
Ja, formatieren Sie die Partition. Ich bin ein bisschen überrascht, dass in den letzten 9 Jahren niemand darauf hingewiesen hat.
Es ist ziemlich radikal, aber wenn Sie damit rechnen, dies häufig für einen bestimmten Ordner zu tun, lohnt es sich möglicherweise, eine separate Partition dafür zu erstellen.
Wenn das zu radikal ist, sind die anderen Antworten Ihre einzige Hoffnung. Es gibt eine gute Erklärung, warum bei Serverfehlern . Es ist für Linux- und XFS-Dateisysteme, aber hier gilt die gleiche Logik. Sie können die eingebauten Betriebssystemfunktionen nicht wesentlich verbessern.
Wenn Sie jedoch die Pfade zu allen Dateien kennen, die Sie löschen möchten, können Sie bei Aufrufen speichern, in denen der Verzeichnisinhalt aufgeführt ist, und direkt das Entfernen von Aufrufen ausführen, wodurch ein gewisser Aufwand gespart wird. Trotzdem proportional zur Anzahl der Dateien.
Persönlich mag ich einige von Fortschrittsberichten, um mich zu vergewissern, dass das Programm nicht gestorben ist. Also lösche ich gerne Sachen per Python. Wenn sich zum Beispiel alle Dateien in einem Verzeichnis ohne Unterverzeichnisse befinden:
Dies löscht ungefähr 250 Dateien / s auf meinem 12 Jahre alten SEAGATE ST3250620NS. Ich würde davon ausgehen, dass es auf Ihrer Festplatte viel schneller sein wird.
Zu diesem Zeitpunkt handelt es sich jedoch nur um eine Mikrooptimierung, sodass Sie nur dann viel tun können, wenn Sie Millionen von Dateien in einem Verzeichnis haben. (wie ich, lol, was habe ich getan D :)
quelle
Installieren
gnutools for windows
und ausführen:quelle
Stellen Sie sicher, dass Sie keine Dateien in der Cloud sichern und gleichzeitig versuchen, sie zu löschen!
Bei vielen Cloud-Sicherungslösungen werden Dateien während der Sicherung gesperrt, und Sie müssen warten, bis sie gesichert sind.
Wenn Sie dieses Problem mit einem temporären Verzeichnis haben (oder mit etwas, das nicht gesichert werden muss), stellen Sie sicher, dass das temporäre Verzeichnis nicht in Ihrem Sicherungssatz ausgewählt ist.
quelle
Ich habe festgestellt, dass Ordner mit mehreren Verzeichnisebenen dazu neigen, die Fähigkeit von Window, sie schnell zu entfernen, wirklich zu verlangsamen. Ich habe an einem Projekt gearbeitet, bei dem es 5 Ebenen gedauert hat, um zum Ordner node_modules zu gelangen, der auch mit dem man immer eine Bestie löschen kann
In dieser Situation navigiere ich zum Ordner node_modules oder zu einem Verzeichnis mit den tiefsten Ebenen und beginne mit dem Auswählen und Löschen von etwa einem Dutzend Verzeichnissen gleichzeitig. Wenn mehrere Löschvorgänge ausgeführt werden, wird der Papierkorb gezwungen, in parallelen Prozessen zu arbeiten, und nicht in einem einzelnen Thread, von dem ich glaube, dass er verwendet wird. Dies beschleunigt den Prozess erheblich.
Sobald mein tiefstes Verzeichnis leer ist, gehe ich ein paar Stufen hoch und mache dasselbe. Dies hat Löschvorgänge verringert, die mich über eine Stunde bis zu wenigen Minuten gekostet haben.
Es ist ein sehr manueller Prozess und könnte wahrscheinlich mit einigem Erfolg geschrieben werden, aber es ist das, was für mich funktioniert hat
quelle
Ich habe Hugos ursprüngliche Antwort verwendet, um eine .bat-Datei zu erstellen, die ich beim Löschen von NPM-Projekten verwende. Ich habe eine Pfadvariable hinzugefügt und muss den Pfad nur einmal kopieren und einfügen. Doppelklicken Sie auf die BAT-Datei, um die gesamte Arbeit zu erledigen. Sie müssen nicht alles eingeben.
Anwendungsbeispiel:
quelle
haben Sie versucht, die Eingabeaufforderung zu verwenden
rmdir /s /q foldername
Alle großen Dateioperationen in GUIs sind langsam - hauptsächlich, weil visuelles Feedback (Fortschrittsbalken) mehrmals überarbeitet werden muss
quelle