Cette question a déjà une réponse ici:
Ma femme possède plusieurs fichiers et dossiers dont les noms de fichiers ont fini par être effacés (ne peuvent pas être supprimés) par des moyens normaux ou via la ligne de commande. Je pense que les noms de fichiers sont trop longs en raison de la profondeur des structures de dossiers. Est-ce que quelqu'un connaît un bon utilitaire pour nettoyer des fichiers comme celui-ci?
CTRL
+DELETE
est la méthode la plus simple à mon avis ...Réponses:
Lorsque vous souhaitez supprimer complètement un répertoire contenant des chemins d'accès longs, faites
robocopy
un très bon travail:Cela fonctionne car robocopy utilise en
\\?\
interne les versions Unicode des fonctions Win32, avec le préfixe pour les chemins de fichiers ; ces fonctions ont une limite de 2¹⁶-1 (32 767) caractères au lieu de 259.Vous devrez peut-être suivre ce processus plusieurs fois pour vous débarrasser de tous les fichiers.
la source
À partir d'une invite de commande:
Ceci listera vos fichiers / dossiers en format de nom court. Ensuite, utilisez le nom abrégé exactement comme écrit pour supprimer le fichier:
la source
dir
oucd ..
.dir
utiliser à lapushd
place. Cela a fonctionné pour moi.Je progresse progressivement dans le chemin en renommant chaque dossier parent successif en "1" et en tentant de le supprimer. Vous raccourcissez effectivement le chemin à chaque fois et je n'ai jamais eu à travailler avec plus de 4 ou 5 répertoires jusqu'à ce que je puisse enfin supprimer toute la structure de répertoires (ce qui peut être ou ne pas être ce que vous voulez). Vous pouvez également le faire depuis le dernier dossier enfant et monter ou descendre.
la source
mv * 1 && cd 1
. Cela ne fonctionnait pas lorsque plusieurs fichiers se trouvaient dans le répertoire, mais à ce moment-là, c'étaitrm -rf *
généralement l'astuce.Dans certains programmes, y compris Invite de commande (
cmd.exe
), vous pouvez contourner la limite de longueur de fichier en préfixant le chemin complet avec le\\.\
code suivant:la source
rm -rf \\directoryname
Une astuce que j’utilisais pour contourner la limitation de longueur du "chemin complet et nom du fichier" afin de déplacer, copier ou supprimer quelque chose est de le raccourcir en "rodant" à mi-chemin (ou plus) en utilisant une lettre de lecteur mappée pointant vers un dossier chemin sur le chemin .
vous avez donc c: \ certains \ long \ chemin ... \ et \ foo \ bar \ dossiers \ oldfiles \ myoldfile.txt.
Mappez ensuite une lettre de lecteur arbitraire sur un chemin le long du chemin afin que le premier bloc du chemin ne contienne que quelques caractères. Pré-requis - le dossier doit être dans un dossier partagé (ce qui est peut-être déjà le cas s'il se trouve sur un serveur, ce qui est l'endroit où j'ai eu besoin de le faire), et s'il ne l'est pas déjà, choisissez un dossier quelque part dans le chemin. et le partager. En fonction de votre environnement et de votre niveau de paranoïa, autorisez tout le monde à modifier l'accès au partage tant que les autorisations NTFS sont raisonnablement restrictives. Si vous le souhaitez, n'autorisez que les droits de modification sur votre propre compte.
Allez maintenant dans le dossier partagé ou dans un dossier et partagez-le, ou utilisez la ligne de commande comme suit. Supposons que vous partagiez le dossier "foo" en tant que "fooshare", alors vous pourriez le faire
et le lecteur X: pointe maintenant directement sur le dossier "dossiers" à l'intérieur de ce partage, de sorte que "x: \ oldfiles \ myoldfile.txt" est maintenant assez court.
(Le "/ persistent: non" signifie que cela ne survivra pas au prochain redémarrage et ne vous tracassera pas plus tard. N'oubliez pas de supprimer votre dossier lorsque vous avez terminé.)
N'oubliez pas que vous n'avez pas nécessairement besoin de partager le dossier contenant le fichier. S'il se trouve déjà dans un dossier partagé, vous pouvez simplement mapper via le partage et les dossiers imbriqués vers un dossier cible situé à proximité du fichier.
J'ai dû utiliser cette technique en effectuant une grande opération de copie entre deux serveurs lorsque nous nous sommes rendus compte que les utilisateurs avaient des lecteurs mappés assez profondément dans la structure des dossiers, ils ont donc pu utiliser 255 caractères à partir de là, mais dépassaient la longueur totale du chemin du fichier lors de l'accès à partir de la racine du disque local.
la source
subst x: C:\Some\first\part\of\the\long\path
et ensuite supprimer le lecteur avecsubst x: /d
subst
astuce semble bien fonctionner, aussi longtemps que le nom n'est pas si longtemps à le faire avancer plus de 260 caractères , même à la racine d'un lecteur.net use
, vous pouvez utiliser les partages d'administration par défaut:net use x: \\localhost\c$\bar\folders /persistent:no
Le moyen le plus simple que j'ai trouvé est de démarrer à partir d'un live CD d'ubuntu.
Sinon, vous pouvez créer un dossier partagé à mi-chemin du chemin, puis y mapper un lecteur réseau et le supprimer du dossier mappé (même sur le même ordinateur).
la source
Renommez le répertoire de copier / coller le fichier ailleurs, puis supprimez-le. Fonctionne ici.
Ou simplement à partir de l'invite de commande, si vous ne voulez pas traverser les ennuis.
la source
node_modules
dossiers super-imbriqués ), faites-le glisser vers votre bureau et supprimez-le. Rincez et répétez à mesure que vous montez quelques dossiers à la fois. Quel problème désagréable.Probablement pas le meilleur moyen et je suis intéressé de voir ce que les autres proposent -
J'ai eu cette fois et j'ai essayé quelques choses sans aucune chance. Plutôt que de chercher un bon outil, j'ai redémarré avec le disque Windows dans, je suis allé à la console de récupération et je l'ai simplement supprimé de là. Travaillé première fois et vraiment bien!
En outre, vient de faire un Google pour vous et a trouvé ceci - DelinvFile est beau mais ne peut pas en donner la garantie .
Edit - Attention, je viens de voir ce qui précède n’est qu’un essai - Peut-être pas aussi bon que je le pensais!
la source