J'ai une boîte Windows XP avec un disque NTFS et la suppression de grandes quantités de fichiers est extrêmement lente. Si je sélectionne un dossier qui contient un grand nombre de fichiers dans une arborescence de dossiers et que je le supprime (en utilisant shift-del pour enregistrer la corbeille), cela prend du temps qui semble être directement proportionnel au nombre de fichiers dans le dossier avant même qu'il ouvre la boîte de confirmation. La suppression de chaque fichier du dossier prend alors encore plus de temps.
Existe-t-il un moyen de supprimer un dossier dans Windows et de ne pas avoir le temps pris proportionnel au nombre de fichiers qu'il contient?
Réponses:
Je ne pense pas, mais certaines méthodes sont clairement beaucoup plus rapides que d'autres.
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 foldername
partir de la ligne de commande.del /f/s/q foldername
est 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. Un deuxième passage nettoie ensuite la structure de répertoires restante:
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:
rmdir
prend ~ 2,5 heures,del+rmdir
prend ~ 53 minutes. Plus d'infos ici .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+rmdir
commandes 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 source
> nul
Eh bien, oui, formatez la partition. Je suis un peu surpris que personne ne l'ait suggéré au cours des 9 dernières années.
C'est assez radical, mais si vous prévoyez de le faire fréquemment pour un dossier spécifique, il pourrait être utile de créer une partition distincte pour celui-ci.
Si c'est trop radical, les autres réponses sont votre seul espoir. Il y a une bonne explication pourquoi sur serverfault . C'est pour les systèmes de fichiers Linux et XFS, mais la même logique s'applique ici. Vous ne pouvez pas améliorer beaucoup les fonctions intégrées du système d'exploitation.
Cependant, si vous connaissez les chemins d'accès à tous les fichiers que vous souhaitez supprimer, vous pouvez enregistrer sur les appels qui répertorient le contenu du répertoire et appeler supprimer directement, économisant ainsi une surcharge. Toujours proportionnelle au nombre de fichiers.
Personnellement, j'aime certains extraits du rapport d'étape pour m'assurer que le programme n'est pas mort. J'aime donc supprimer des trucs via python. Par exemple, si tous les fichiers sont dans un répertoire sans sous-répertoires:
Cela supprime environ 250 fichiers / s sur mon SEAGATE ST3250620NS de 12 ans. Je suppose que ce sera beaucoup plus rapide sur votre disque.
Cependant, à ce stade, il ne s'agit que de micro-optimisation, donc ne fera pas grand-chose à moins d'avoir des millions de fichiers dans un répertoire. (comme moi, lol, qu'ai-je fait D :)
la source
Installez
gnutools for windows
et exécutez:la source
Assurez-vous de ne pas sauvegarder les fichiers dans le cloud et d'essayer de les supprimer en même temps!
Avec de nombreuses solutions de sauvegarde dans le cloud, les fichiers sont verrouillés pendant leur sauvegarde, puis vous devez attendre leur sauvegarde.
Si vous rencontrez ce problème avec par exemple un répertoire temporaire (ou quelque chose qui n'a pas besoin d'être sauvegardé) assurez-vous que le répertoire temporaire n'est pas sélectionné dans votre jeu de sauvegarde.
la source
J'ai trouvé que les dossiers avec plusieurs couches de répertoires ont tendance à ralentir vraiment la capacité de Windows à les supprimer rapidement. Je travaillais sur un projet où il fallait 5 niveaux pour arriver au dossier node_modules, qui est toujours une bête à supprimer, même avec
Ce que je finis par faire dans cette situation est de naviguer vers le dossier node_modules ou tout répertoire ayant les niveaux les plus profonds et de commencer à sélectionner et supprimer environ une douzaine de répertoires à la fois. Si j'obtiens plusieurs suppressions, cela oblige la Corbeille à travailler dans des processus parallèles plutôt que le seul thread que je pense qu'il utilise, accélère considérablement le processus.
Une fois que mon répertoire le plus profond est vide, je monte de quelques niveaux et fais la même chose. Cela a permis de réduire les suppressions qui m'ont pris plus d'une heure à quelques minutes.
C'est un processus très manuel et pourrait probablement être scénarisé avec un certain succès, mais c'est ce qui a fonctionné pour moi
la source
J'ai utilisé la réponse originale d'Hugo pour créer un fichier .bat que j'utilise lors de la suppression de projets NPM. J'ai ajouté une variable de chemin et n'ai qu'à copier et coller le chemin une fois. Double-cliquez sur le fichier .bat et il fait tout le travail - pas besoin de tout taper.
Exemple d'utilisation:
la source
avez-vous essayé d'utiliser l'invite de commande
rmdir /s /q foldername
toutes les opérations de fichiers volumineux dans les interfaces graphiques sont lentes - principalement parce que le retour visuel (barre de progression) doit être repeint plusieurs fois
la source