AVISO: se tiver links simbólicos para directórios então del
apagará os directórios reais e não os links simbólicos. Tenha muito cuidado com isto e não execute estes comandos a menos que saiba que não existem links simbólicos dentro do directório alvo.
Preciso regularmente de apagar muitos ficheiros e directórios de uma unidade encriptada WinXP, normalmente cerca de 22 GB de 500.000 ficheiros em 45.000 pastas.
Apagar com o Windows Explorer é um desperdício porque desperdiça muito tempo a enumerar os ficheiros. Normalmente mudo o material que preciso de apagar para C:\stufftodete e tenho um ficheiro de lote deletestuff.bat para rmdir /s/q C:\stufftodelete
. Isto está programado para funcionar à noite, mas às vezes preciso de o executar durante o dia para que quanto mais rápido melhor.
Aqui estão os resultados de um teste de tempo rápido de uma pequena amostra de 5,85 MB de 960 ficheiros em 303 pastas. Executei o método 1 seguido do método 2, depois reiniciei os directórios de teste.
Método 1 remove os ficheiros e a estrutura de directórios numa só passagem:
rmdir /s/q foldername
Método 2 tem uma primeira passagem para eliminar ficheiros e saídas para nul para evitar a sobrecarga de escrita para o ecrã para cada ficheiro de singe. Uma segunda passagem limpa depois a estrutura de directório restante:
del /f/s/q foldername > nul
rmdir /s/q foldername
- Método 1: 17,5s, 14,9s, 13,9s, 14,8s, 13,8s: média 14,98 segundos*
- Método 2: 14,3s, 12,1s, 11,7s, 14,2s, 11,8s: média 12,82 segundos*
Aqui estão os resultados de outro teste usando 404 MB de 19.521 ficheiros em 3.243 pastas:
- Método 1: 2 minutos 20 segundos*
- Método 2: 2 minutos 33 segundos*
& Portanto, não há muito nele, provavelmente demasiado perto para julgar num único teste.
Editar: Retestei com muito mais dados, este é um caso típico para mim: 28,3 GB de 1.159.211 ficheiros em 146.918 pastas:
- Método 1: 2h 15m, 2h 34m: média: 2 horas 25 minutos*
- Método 2: 49m, 57m: média: 53 minutos*
Uau, o método 2 é quase três vezes mais rápido que o método 1! Estarei a actualizar o meu deletestuff.bat!