2008-10-09 13 views
224

Je souhaite supprimer un dossier contenant des milliers de fichiers et de dossiers. Si j'utilise Windows Explorer pour supprimer le dossier, cela peut prendre de 10 à 15 minutes (pas toujours, mais souvent). Existe-t-il un moyen plus rapide dans Windows pour supprimer des dossiers?Quel est le moyen le plus rapide pour supprimer un grand dossier dans Windows?

Autres détails:

  • Je ne se soucient pas de la corbeille.
  • C'est un lecteur NTFS.
+1

Aussi demandé ici au super utilisateur: http://superuser.com/questions/19762/mass-deleting-files-in-windows/289399#289399 – Hugo

+1

Peut-être rm -rf dans cygwin est plus rapide, et peut-être un linux live cd rm -rf est encore plus rapide. – barlop

+0

en utilisant cygwin ls DIRECTORY> list_files et faire une itération sur les fichiers list_files et utiliser rm -rf (traitant d'un pool de fichiers volumineux 1TB et fonctionne bien) – gnuyoga

Répondre

300

Utilisez invite de commande Windows:

rmdir /s /q folder 
+16

btw, vous pouvez également utiliser rd/q/s Cependant, bien que ce soit plus rapide que la représentation graphique dans l'Explorateur Windows, il faudra encore un * temps * long - MS utilise un algorithme 'Schlemeil the Painter' (joelonsoftware.com/articles/fog0000000319.html) chaque fois qu'un répertoire ou un del est fait – warren

+13

Ce n'est pas DOS! Thats juste les outils de ligne de commande pour Windows – TFD

+0

D'accord avec TFD - quelqu'un devrait éditer ce post et changer DOS à "l'invite de commande". –

3

utiliser l'invite de commande, comme le suggère. J'ai compris pourquoi l'explorateur est si lent il y a un moment, il vous donne une estimation du temps qu'il faudra pour supprimer les fichiers/dossiers. Pour ce faire, il doit scanner le nombre d'éléments et la taille. Cela prend des âges, d'où l'attente ridicule avec de grands dossiers.

De plus, l'explorateur s'arrêtera s'il y a un problème particulier avec un fichier,

3

et de supprimer un grand nombre de dossiers, vous pouvez également créer un fichier batch avec la commande spdenne affichée.

1) créer un fichier texte qui a le contenu suivant remplaçant les noms de dossiers entre guillemets avec vos noms de dossier:

rmdir /s /q "My Apps" 
rmdir /s /q "My Documents" 
rmdir /s /q "My Pictures" 
rmdir /s /q "My Work Files" 

2) enregistrer le fichier batch avec une extension .bat (par exemple deletefiles.bat
3) ouvrez une invite de commande (Démarrer> Exécuter> Cmd) et exécutez le fichier de commandes. vous pouvez le faire comme si de l'invite de commande (en remplaçant X pour votre lettre de lecteur):

X: 
deletefiles.bat 
+2

Oui, j'ai un fichier batch similaire, mais j'ai trouvé un combo de del + rmdir le plus rapide: http://stackoverflow.com/questions/186737/whats-the-fastest-way-to-delete-a-large-folder -in-windows/6208144 # 6208144 – Hugo

6

utilisation fastcopy, un outil gratuit. il a une option de suppression qui est beaucoup plus rapide que la façon dont Windows supprime les fichiers.

+1

J'ai essayé FastCopy.Je ne sais pas si c'est plus rapide que Windows, je n'obtenais que 92 fichiers par seconde. Considérant que j'ai renoncé à compter le nombre de fichiers à plus de 250K, ça va me prendre pour toujours à utiliser .. Oh bien. Chaque fichier est seulement comme 20 octets. Darn fichiers de session PHP. – Chrispix

+3

@Chrispix Avez-vous essayé le nom de fichier rm -rf de cygwin? – barlop

807

La pire façon est d'envoyer à la corbeille: vous devez toujours les supprimer. Le pire est ensuite shift + delete avec l'Explorateur Windows: il perd beaucoup de temps à vérifier le contenu avant de commencer à supprimer quoi que ce soit.

Le mieux est d'utiliser rmdir /s/q foldername à partir de la ligne de commande. del /f/s/q foldername est bon aussi, mais il laisse derrière la structure du répertoire. Le meilleur que j'ai trouvé est un fichier batch de deux lignes avec un premier passage pour supprimer les fichiers et les sorties à nul pour éviter le surcoût de l'écriture à l'écran pour chaque fichier singe. Un second passage nettoie ensuite la structure de répertoire restant:

del /f/s/q foldername > nul 
rmdir /s/q foldername 

C'est près de trois fois plus vite qu'un seul rmdir, basée sur des tests de temps avec un disque crypté Windows XP, la suppression de ~ 30GB/1.000.000 fichiers/15.000 dossiers: rmdir prend ~ 2,5 heures, del+rmdir prend ~ 53 minutes. Plus d'infos au Super User.

Ceci est une tâche normale pour moi, donc je déplace habituellement les choses que j'ai besoin de supprimer à C: \ stufftodelete et ai ces commandes del+rmdir dans un fichier batch deletestuff.bat. Ceci est prévu pour fonctionner la nuit, mais parfois je dois l'exécuter pendant la journée, donc le plus vite sera le mieux.

La documentation Technet pour la commande del peut être trouvée here. Informations complémentaires sur les paramètres utilisés ci-dessus:

  • /f - force (c.-à supprimer des fichiers, même si elles sont en lecture seule)
  • /s - récursive/Inclure les sous-dossiers (cette définition de SS64, comme technet indique simplement « spécifié fichiers ", ce qui n'est pas utile).
  • /q - Quiet (à savoir faire utilisateur ne demande de confirmation)

Documentation pour rmdirhere. Les paramètres sont les suivants:

  • /s - récursive (ie même que le paramètre de s/del)
  • /q - Quiet (ie même que le paramètre de del/q)
+15

C'est vraiment très bien. J'ai un test par moi-même. Merci. – vietean

+0

@Hugo une question: Dans les tests chronométrés ci-dessus, pour l'une ou l'autre ou les deux méthodes, avez-vous compté les fichiers immédiatement avant d'exécuter la méthode? Je demande parce que le contenu du dossier peut être déjà dans le cache du fichier OS. Merci! –

+0

@WilliamC: Je ne me souviens pas exactement, mais pour les suppressions répétées avec le même contenu j'aurai compté juste avant une seule suppression, et je ne l'aurai pas répété pour les autres suppressions (comme je connais déjà les nombres). – Hugo

2

Essayez [Maj] + [supprimer] a fait 24.000 fichiers en 2 minutes pour moi

+12

Voir ci-dessus - évite la corbeille mais toujours beaucoup plus lentement que la ligne de commande. – andig

+0

Cette méthode supprime directement les fichiers au lieu de les déplacer vers la corbeille, mais l'explorateur essaiera toujours de compter tous les fichiers afin d'obtenir une estimation, ce qui prend beaucoup de temps pour les dossiers volumineux (fichiers> 100k) – uceumern

+0

Taille ? –