AVVERTENZA: se avete collegamenti simbolici alle directory allora del
cancellerà le directory vere e proprie e non i collegamenti simbolici. Fate molta attenzione e non eseguite questi comandi a meno che non sappiate che non ci sono collegamenti simbolici all'interno della directory di destinazione.
Ho regolarmente bisogno di cancellare molti file e directory da un disco criptato di WinXP, tipicamente circa 22 GB di 500.000 file in 45.000 cartelle.
Cancellare con Windows Explorer è una schifezza, perché perde un sacco di tempo ad enumerare i file. Di solito sposto la roba che devo cancellare in C:\stufftodelete e ho un file batch deletestuff.bat a rmdir /s/q C:\stufftodelete
. Questo è programmato per essere eseguito di notte, ma a volte ho bisogno di eseguirlo durante il giorno, quindi più veloce è meglio è.
Ecco i risultati di un rapido test di tempo di un piccolo campione di 5,85 MB di 960 file in 303 cartelle. Ho eseguito il metodo 1 seguito dal metodo 2, poi ho resettato le directory di prova.
Il metodo 1 rimuove i file e la struttura delle cartelle in un solo passaggio:
rmdir /s/q foldername
Il metodo 2 ha un primo passaggio per cancellare i file e gli output a nul per evitare l'overhead di scrivere sullo schermo per ogni singolo file. Un secondo passaggio poi ripulisce la struttura della directory rimanente:
del /f/s/q foldername > nul
rmdir /s/q foldername
- Metodo 1: 17.5s, 14.9s, 13.9s, 14.8s, 13.8s: media 14.98 secondi
- Metodo 2: 14.3s, 12.1s, 11.7s, 14.2s, 11.8s: media 12.82 secondi
Ecco i risultati di un altro test utilizzando 404 MB di 19.521 file in 3.243 cartelle:
- Metodo 1: 2 minuti 20 secondi
- Metodo 2: 2 minuti 33 secondi
Quindi non c'è molto, probabilmente troppo vicino per giudicare su un singolo test.
Modifica: Ho ritestato con molti più dati, questo è un caso tipico per me: 28,3 GB di 1.159.211 file in 146.918 cartelle:
- Metodo 1: 2h 15m, 2h 34m: media: 2 ore 25 minuti
- Metodo 2: 49m, 57m: media: 53 minuti
Wow, il metodo 2 è quasi tre volte più veloce del metodo 1! Aggiornerò il mio deletestuff.bat!