Is there a way to delete a folder in Windows and not having the time taken proportional to the number of files within it?
Eu não penso assim, mas alguns métodos são claramente muito mais rápidos do que outros.
A pior maneira é enviar para a Lixeira: você ainda precisa excluí-los. Em seguida, o pior é shift + delete com o Windows Explorer: ele desperdiça muito tempo checando o conteúdo antes de começar a deletar qualquer coisa.
O melhor é usar rmdir /s/q foldername
na linha de comando. del /f/s/q foldername
também é bom, mas deixa para trás a estrutura de diretórios.
O melhor que eu encontrei é um arquivo de lote de duas linhas com um primeiro passo para excluir arquivos e saídas para nul para evitar a sobrecarga de escrever para a tela para cada arquivo singe. Um segundo passe, em seguida, limpa a estrutura de diretórios restante:
del /f/s/q foldername > nul
rmdir /s/q foldername
Isso é quase três vezes mais rápido que um único rmdir, baseado em testes de tempo com um disco criptografado do Windows XP, excluindo ~ 30GB / 1.000.000 de arquivos / 15.000 pastas: rmdir
demora ~ 2,5 horas, del+rmdir
demora ~ 53 minutos . Mais informações aqui .
Esta é uma tarefa regular para mim, então eu geralmente movo as coisas que preciso excluir para C: \ stufftodelete e tenho esses comandos del+rmdir
em um arquivo de lote deletestuff.bat. Isso está programado para ser executado à noite, mas às vezes eu preciso executá-lo durante o dia, então quanto mais rápido, melhor.