Eu tenho uma caixa do Windows XP com um disco NTFS e a exclusão de grandes quantidades de arquivos é extremamente lenta. Se eu selecionar uma pasta que contém um grande número de arquivos em uma árvore de pastas e excluir (usando shift-del para salvar a lixeira), leva um tempo que parece ser diretamente proporcional ao número de arquivos dentro da pasta antes mesmo de aparece a caixa de confirmação. Em seguida, leva mais tempo para excluir cada arquivo da pasta.
Existe uma maneira de excluir uma pasta no Windows e não levar o tempo proporcional ao número de arquivos nela?
Respostas:
Acho que não, mas alguns métodos são claramente muito mais rápidos que outros.
A pior maneira é enviar para a Lixeira: você ainda precisa excluí-los. O pior é o seguinte shift + delete com o Windows Explorer: perde muito tempo verificando o conteúdo antes de começar a excluir qualquer coisa.
O melhor a seguir é 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 encontrei é um arquivo em lotes de duas linhas com uma primeira passagem para excluir arquivos e saídas para zero, para evitar a sobrecarga de gravar na tela para cada arquivo de singe. Uma segunda passagem limpa a estrutura de diretórios restante:
Isso é quase três vezes mais rápido que um único rmdir, com base em testes de tempo com um disco criptografado do Windows XP, excluindo ~ 30 GB / 1.000.000 de arquivos / 15.000 pastas:
rmdir
leva ~ 2,5 horas,del+rmdir
leva ~ 53 minutos. Mais informações aqui .Essa é uma tarefa regular para mim; portanto, normalmente movo as coisas que preciso excluir para C: \ stufftodelete e tenho esses
del+rmdir
comandos em um arquivo em lotes deletestuff.bat. Isso está programado para ser executado à noite, mas às vezes eu preciso executá-lo durante o dia para que quanto mais rápido, melhor.fonte
> nul
Bem, sim, formate a partição. Estou um pouco surpreso que ninguém tenha sugerido isso nos 9 anos anteriores.
É bastante radical, mas se você antecipar isso com frequência para uma pasta específica, pode valer a pena criar uma partição separada para ela.
Se isso é radical demais, as outras respostas são sua única esperança. Há uma boa explicação sobre o motivo da falha no servidor . É para sistemas de arquivos linux e XFS, mas a mesma lógica se aplica aqui. Você não pode melhorar muito as funções integradas do sistema operacional.
No entanto, se você souber os caminhos para todos os arquivos que deseja excluir, poderá economizar nas chamadas que listam o conteúdo do diretório e remover diretamente, economizando algumas despesas. Ainda proporcional ao número de arquivos.
Pessoalmente, gosto de alguns dos relatórios de progresso para garantir que o programa não tenha morrido. Então, eu gosto de excluir coisas via python. Por exemplo, se todos os arquivos estiverem em um diretório sem subdiretórios:
Isso exclui cerca de 250 arquivos / s no meu SEAGATE ST3250620NS de 12 anos. Eu diria que será muito mais rápido em sua unidade.
No entanto, neste momento, é apenas micro-otimização, por isso não fará muito, a menos que você tenha milhões de arquivos em um diretório. (como eu, lol, o que eu fiz D :)
fonte
Instale
gnutools for windows
e execute:fonte
Verifique se você não está fazendo backup de arquivos na nuvem e tentando excluí-los ao mesmo tempo!
Com muitas soluções de backup em nuvem, os arquivos ficam bloqueados enquanto estão sendo copiados e é necessário aguardar o backup.
Se você está tendo esse problema com, digamos, um diretório temporário (ou algo que não precise de backup), verifique se o diretório temporário não está selecionado no seu conjunto de backup.
fonte
Descobri que pastas com várias camadas de diretórios tendem a diminuir a capacidade do Windows de removê-los rapidamente. Eu estava trabalhando em um projeto em que foram necessários cinco níveis para chegar à pasta node_modules, que é sempre uma besta para excluir, mesmo com
O que acabo fazendo nessa situação é navegar até a pasta node_modules ou qualquer diretório com os níveis mais profundos e apenas começar a selecionar e excluir cerca de uma dúzia de diretórios por vez. Se eu receber várias exclusões, isso força a Lixeira a trabalhar em processos paralelos, em vez do único thread que acredito que ele usa, que acelera drasticamente o processo.
Quando meu diretório mais profundo estiver vazio, subo alguns níveis e faço a mesma coisa. Isso reduziu as exclusões que me levaram mais de uma hora a apenas alguns minutos.
É um processo muito manual e provavelmente pode ser roteirizado com algum sucesso, mas é o que funcionou para mim
fonte
Usei a resposta original de Hugo para criar um arquivo .bat que eu uso ao excluir projetos do NPM. Eu adicionei uma variável de caminho e só tenho que copiar e colar o caminho uma vez. Clique duas vezes no arquivo .bat e ele faz todo o trabalho - não é necessário digitar tudo.
Exemplo de uso:
fonte
você tentou usar o prompt de comando
rmdir /s /q foldername
todas as operações de arquivos grandes nas GUIs são lentas - principalmente porque o feedback visual (barra de progresso) precisa ser repintado várias vezes
fonte