Quel est le moyen le plus rapide de supprimer un grand dossier sous Windows?

224

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

Autres détails:

  • Je me fiche de la corbeille.
  • C'est un lecteur NTFS.
BrezzaP
la source
1
Également demandé ici à Super User: superuser.com/questions/19762/mass-deleting-files-in-windows/…
Hugo
1
Peut-être que rm -rf dans cygwin est plus rapide, et peut-être qu'un cd live linux rm -rf est encore plus rapide.
barlop
utiliser cygwin ls DIRECTORY> list_files et faire une itération sur list_files et utiliser rm -rf (gérer un pool de fichiers volumineux de 1 To et fonctionne bien)
gnuyoga
Les gars, je ne sais pas si c'est la même expérience que tout le monde a ... mais si je supprime un gros dossier puis l'annule pendant qu'il supprime le dossier est parti et la corbeille est vide. Je ne sais pas pourquoi cela fonctionne, mais ça le fait pour moi.
ladieu

Réponses:

333

Utilisez l'invite de commande Windows:

rmdir /s /q folder
Stephen Denne
la source
22
btw, vous pouvez également utiliser rd / q / s <foldername> cependant, bien que cela soit plus rapide que la représentation graphique dans l'Explorateur Windows, cela va encore prendre du temps - MS utilise un algorithme `` Schlemeil the Painter '' (joelonsoftware. com / articles / fog0000000319.html) à chaque fois qu'un dir ou del est fait
warren
37
Le dossier rm -rf fonctionne à merveille rapidement si Cygwin est installé.
Sinan Ünür
45
J'avais l'habitude d'utiliser cela, mais j'ai trouvé un combo de del + rmdir presque trois fois plus rapide que rmdir ordinaire. Voir ma réponse: stackoverflow.com/questions/186737/…
Hugo
2
La suggestion de Sinan est la plus rapide. Installez cygwin.com, puis utilisez rm -rfv folderName à partir de l'invite de commandes cygwin.
Lonnie Best
1
+1 sur Cygwin, qui dissocie la structure, un peu plus rapidement que la façon dont les outils Windows le font, mais pas aussi sûr.
Tracker1
975

Le pire moyen est d'envoyer dans la Corbeille: vous devez toujours les supprimer. Le pire est ensuite shift + delete avec l'Explorateur Windows: cela gaspille beaucoup de temps à vérifier le contenu avant de commencer à supprimer quoi que ce soit.

Le mieux est d'utiliser à rmdir /s/q foldernamepartir de la ligne de commande. del /f/s/q foldernameest bon aussi, mais il laisse derrière lui la structure du répertoire.

Le meilleur que j'ai trouvé est un fichier batch de deux lignes avec une première passe pour supprimer les fichiers et les sorties vers nul pour éviter les frais d'écriture sur écran pour chaque fichier singe. Une deuxième passe nettoie ensuite la structure de répertoires restante:

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

C'est près de trois fois plus rapide qu'un seul rmdir, basé sur des tests de temps avec un disque crypté Windows XP, supprimant ~ 30 Go / 1 000 000 fichiers / 15 000 dossiers: rmdirprend ~ 2,5 heures, del+rmdirprend ~ 53 minutes. Plus d'infos sur Super User .

C'est une tâche régulière pour moi, donc je déplace généralement les éléments que je dois supprimer vers C: \ stufftodelete et j'ai ces del+rmdircommandes dans un fichier batch deletestuff.bat. Il est prévu que cela fonctionne 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 delcommande peut être trouvée ici . Informations supplémentaires sur les paramètres utilisés ci-dessus:

  • /f - Forcer (c'est-à-dire supprimer des fichiers même s'ils sont en lecture seule)
  • /s- Récursif / Inclure les sous-dossiers (cette définition de SS64 , car technet indique simplement "fichiers spécifiés", ce qui n'est pas utile).
  • /q - Silencieux (c.-à-d. Ne pas inviter l'utilisateur à confirmer)

Documentation rmdir ici . Les paramètres sont:

  • /s - Récursif (c'est-à-dire identique au paramètre del's / s)
  • /q - Silencieux (c'est-à-dire identique au paramètre del's / q)
Hugo
la source
1
J'ai essayé cela aujourd'hui (certes sur un ensemble de données plus petit) et j'ai obtenu le résultat inverse: utiliser juste rmdir était 30% plus rapide (3:17) que d'utiliser del puis rmdir (2:15).
Harry Johnston
6
J'avais besoin de "Exécuter en tant qu'administrateur" pour que cela fonctionne, selon le lecteur.
Eyal
1
Que diriez-vous d'utiliser Cygwin. Je sais que c'est une couche au-dessus de Windows, mais le monde Linux peut-il nous aider à mieux servir?
Sarat
1
Cela a très bien fonctionné pour moi. Il a supprimé environ 16 Go, quelques centaines de milliers de fichiers en quelques secondes sur Windows 7. Le système d'exploitation a été suspendu pendant un certain temps avant d'abandonner et de rechercher ici.
Engineero
4
Une excellente et élégante solution, puis-je suggérer de rationaliser la commande en utilisant le shell de commande esperluette: exécuter les commandes successivement: del /f/s/q foldername > nul & rmdir /s/q foldername ou exécuter les commandes successivement uniquement si la première commande réussit. del /f/s/q foldername > nul && rmdir /s/q foldername
GBGOLC
6

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

Stephen Denne
la source
1
J'ai essayé FastCopy. Je ne sais pas si c'est plus rapide que Windows, je ne supprimais que 92 fichiers / seconde. Étant donné que j'ai renoncé à compter le nombre de fichiers à plus de 250K, ça va me prendre pour toujours à utiliser .. Oh bien. Chaque fichier ne fait que 20 octets. Fichiers de session PHP Darn.
Chrispix
1
essayez l'outil gratuit open source RapidDeletePro: github.com/mhisoft/RapidDeletePro
Tony
3

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

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

nicodemus13
la source
3

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

1) créez un fichier texte qui a le contenu suivant en remplaçant les noms de dossier entre guillemets par 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) enregistrez le fichier de commandes 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 cela à partir de l'invite de commande (en remplaçant X par votre lettre de lecteur):

X:  
deletefiles.bat
xyz
la source
2
Oui, j'ai un fichier de commandes similaire, mais j'ai trouvé le combo del + rmdir le plus rapide: stackoverflow.com/questions/186737/…
Hugo
-1

Essayez Shift+ Delete. J'ai fait 24 000 fichiers en 2 minutes pour moi.

jeroen
la source
13
Voir ci-dessus - évite la corbeille mais toujours beaucoup plus lentement que la ligne de commande.
andig
1
Cette méthode supprimera directement les fichiers au lieu de les déplacer dans la corbeille, mais l'explorateur essaiera toujours de compter tous les fichiers afin d'obtenir une estimation, ce qui prend du temps pour les gros dossiers (> 100 000 fichiers)
uceumern
quelle était la taille moyenne d'un fichier?
your_boy_gorja
@your_boy_gorja le problème n'est pas la taille moyenne des fichiers mais la quantité de fichiers dans un dossier. Lorsque vous supprimez par l'explorateur, l'explorateur doit lire tous les fichiers pour obtenir la taille et essayer de faire une estimation
Vinicius Monteiro
@uceumern oui cette chose qui compte est ridicule avec un dossier avec beaucoup, beaucoup de fichiers (~ 40 Go avec 1m + fichiers)
Brian Leishman