76 votes

Comment supprimer un dossier qui est imbriqué assez profondément et éviter le "File name too long" ?

Eclipse a créé un dossier temporaire dans l'un des répertoires qui est imbriqué assez profondément, par ex.

dir1\dir1\dir1\dir1\...

Je ne parviens pas à supprimer ce dossier dans Windows via l'Explorateur, la del o rmdir ni la commande 'rm' de Cygwin. Comment dois-je supprimer ce très long dossier ?

Le message "Nom de fichier trop long..." s'affiche.

6voto

Jeffrey Lawton Points 1

Simple et facile maintenant

j'ai été confronté à ce même problème depuis si longtemps avec les node_modules qui très imbriqués dossiers. donc finalement fait un script pour corriger cela qui peut supprimer les dossiers en raccourcissant les chemins.

https://github.com/dev-mraj/fdel

npm install fdel -g

fdel ./node_modules

4voto

SiloSix Points 41

En travaillant avec Sikuli, je me suis retrouvé avec une boucle de récursion Calculator.sikuli dans le programme qui créait une quantité innombrable de répertoires "calculator.sikuli.calculator.sikuli". Je pouvais déplacer l'arbre, mais le nom du chemin était trop long pour être supprimé.

Après avoir essayé plusieurs solutions avec popd loop, Scandisk et avoir obtenu (de manière perceptible) nowhere.....

J'ai écrit ce script pour 'aller en profondeur' dans les répertoires récurrents (dans un répertoire appelé 'a'), les déplacer (vers un répertoire appelé 'b'), puis supprimer l'arbre tronqué, les déplacer à nouveau (vers 'a'), et répéter :

1)cd D:\a\calculator.sikuli\calculator.sikuli\calculator.sikuli\calculator.sikuli
.............go deeeeeep in         dir *A*
2) move calculator.sikuli ---> D:\b    
.............move the crazy tree to dir *B*    
3) kill D:\a\calculator.sikuli <---KILL(rd)    
.............wipe dir *A*'s tree    
4) move D:\b\calculator.sikuli ---> D:\a\    
.............move the crazy tree back to dir *A*    
REPEAT
  • REM Utilisé pour supprimer les sous-dossiers récurrents à l'infini.
  • REM suggère d'arrêter d'abord le service Windows Search (services.msc).

Remdirs.bat

D:
cd D:\a\calculator.sikuli\calculator.sikuli\calculator.sikuli\calculator.sikuli
move /-Y calculator.sikuli D:\b
cd D:\b
rd /s/q D:\a\calculator.sikuli
move /-Y calculator.sikuli D:\a
call D:\remdirs2.bat

C'est juste un appel pour exécuter à nouveau le fichier batch.

3voto

EE1337 Points 1

Nous avons eu un problème de ce genre au travail quand Eclipse a décidé de créer des déchets sur les disques durs. Nous l'avons résolu en utilisant la fonction /MIR de robocopy pour mettre en miroir un répertoire vide dans le répertoire imbriqué.

2voto

Dejan Milicic Points 669

J'ai eu le même problème, sauf qu'il a été créé par une tâche récursive de Cobian Backup. Il s'avère que la logiciel Cobian gratuit comprend une application de suppression qui permet de supprimer très rapidement ces dossiers imbriqués.

Il est situé dans le menu "Outils".

1voto

Brandon Points 2580

Ouvrez une invite de commande.

Naviguez jusqu'au dossier/répertoire qui contient le plus haut "dir1" (nous supposerons que c'est C:³).

c:\> RD /s dir1

Editar (après ajout de commentaires) :

D'autres idées :

MS propose des informations sur la manière de traiter le problème (beaucoup d'idées à essayer). aquí .

Il y a aussi cet outil (que je n'ai jamais utilisé personnellement). TooLongPath .

Vous pourriez peut-être écrire quelque chose (puisque vous avez Eclipse) qui navigue jusqu'à l'intérieur, puis revient en arrière, un niveau de dossier à la fois, en supprimant au fur et à mesure ?

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X