Question Comment supprimer un fichier dans Windows avec un nom de fichier trop long? [dupliquer]


Cette question a déjà une réponse ici:

Ma femme a plusieurs fichiers et dossiers qui ont fini par avoir des noms de fichiers qui les ont rendus indissociables (ne peuvent pas être supprimés) par des moyens normaux ou via la ligne de commande. Je crois 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?


195
2017-09-23 15:56


origine


Comment ces fichiers ont-ils été créés? - Nick
Désolé pour mon ignorance sur ce sujet, mais Windows ne devrait-il pas gérer ces fichiers? Ne devrait pas ce que Eddins posté sera fait automatiquement par Windows (même de l'explorateur)? - Stefanos Kalantzis
@ Mokubai- La question en double devrait être marquée en double de celle-ci, comme cette question est plus ancienne. - cybermonkey
@cybermonkey: Et il a une meilleure réponse. - Ellesedil
Pour d'autres lecteurs, le Méthode 7zip avec CTRL + DELETE est la méthode la plus simple à mon avis ... - Christian Gollhardt


Réponses:


Lorsque vous souhaitez supprimer complètement un répertoire contenant des fichiers contenant des noms longs, robocopy effectue un très bon travail:

mkdir empty_dir
robocopy empty_dir the_dir_to_delete /s /mir
rmdir empty_dir
rmdir the_dir_to_delete

Cela fonctionne parce que robocopy en interne utilise les versions de fonctions Win32 compatibles Unicode, 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 plus d'une fois pour vous débarrasser de tous les fichiers.


415
2017-08-29 13:38



Efficace lorsqu'il n'y a pas de nom abrégé (8.3) stocké dans le système de fichiers. - Antoine RODRIGUEZ
Cela a bien fonctionné avec mon Windows Store obstiné fichiers de cache qui a refusé d'être supprimé. Merci! - Samir
J'ai dû ajouter / purger la ligne robocopy pour que cela fonctionne, mais il a fait l'affaire après cela - actionshrimp
Robocopy est ce qui m'a mis dans ce pétrin, mais je n'ai jamais pensé à utiliser Robocopy pour m'en sortir. Très bonne réponse! Merci! - Jay Michaud
@SarahofGaia, mon mauvais, c'est 2¹⁶ - 1 en fait - Benoit


À partir d'une invite de commande:

dir /X

Ceci listera vos fichiers / dossiers au format de nom abrégé. Ensuite, utilisez le nom abrégé exactement comme écrit pour supprimer le fichier:

del LONGF~1.txt

89
2017-09-23 16:01



J'aime celle-là, c'est une belle réflexion latérale. - Col
Bien que je ne puisse pas garantir que cela fonctionnera dans ce cas, je l'ai utilisé plusieurs fois pour supprimer des dossiers qui ont des caractères non valides à la fin, ce qui les rend impossible à supprimer par des moyens normaux. - Will Eddins
Cela fonctionne pour les fichiers et les dossiers dans le répertoire en cours, mais si vous réussissez à vous retrouver à l'intérieur un dossier dont le chemin est trop long, cela ne va pas aider. Par exemple, je suis actuellement dans une console sur un chemin trop long et ne peux même pas dir ou cd ... - Bobson
@Bobson Si vous ne pouvez pas dir utilisation pushd au lieu. Cela a fonctionné pour moi. - BadHorsie
Cela ne fonctionne pas avec Windows 10, le nom de fichier affiché est le long - Loenix


Je progresse progressivement dans le chemin, en renommant chaque dossier parent successif à "1" et en essayant de le supprimer. Vous êtes en train de raccourcir le chemin à chaque fois et je n'ai jamais eu à travailler avec plus de 4 ou 5 répertoires jusqu'à ce que je sois enfin capable de supprimer toute la structure des répertoires (qui peut être ou non ce que vous voulez). Vous pouvez également le faire depuis le dernier dossier enfant et monter ou descendre.


51
2017-09-23 17:40



C'était la seule chose qui fonctionnait pour moi. Tous les autres trucs donnés ici et dans d'autres forums tels que celui-ci n'ont pas fonctionné. - Andrew Arnott
Heureux de vous aider... - joeqwerty
Était la seule suggestion qui a fonctionné assez curieusement. - Nestor Ledon
Impossible de faire cela dans Windows 10 ... renommer lève l'erreur "nom_fichier à long" - Dawesi
Non seulement cela a résolu le problème pour moi, mais cela explique aussi comment je me suis retrouvé avec le problème en premier lieu. Je devais avoir un chemin qui était proche de la limite, puis j'ai renommé un dossier parent (ajouté quelque chose comme "backup nov 2016 save" au nom) qui a poussé les fichiers dans les sous-dossiers au-delà de la limite. Il est bon de connaître la cause et la solution, même si je sais que cela peut arriver d’autres façons, je pense que c’est une façon courante pour les gens. - eselk


Dans certains programmes, y compris l'invite de commande (cmd.exe), vous pouvez contourner la limite de longueur des fichiers en préfixant le chemin complet avec \\.\ comme ça:

\\. \ C: \ un répertoire \ autre répertoire \ un fichier avec un nom long

13
2017-09-23 16:12



ne fonctionne pas dans Windows 10 - Dawesi
merci, cmd a fonctionné un charme avec cela dans Win7 rm -rf \\directoryname - Philip Pryde


Une astuce que j'ai utilisée pour contourner la limitation de longueur "chemin complet et nom de fichier" afin de déplacer, copier ou supprimer quelque chose est de la raccourcir en "s'infiltrant" à mi-chemin (ou plus) en utilisant une lettre de lecteur mappée pointant vers un dossier dans le chemin.

vous avez donc c: \ some \ long \ path ... \ et \ foo \ bar \ folders \ oldfiles \ myoldfile.txt.

Ensuite, mappez une lettre de lecteur arbitraire quelque part le long du chemin, de sorte que le premier morceau du chemin ne fasse 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 nécessaire pour cela), et si ce n'est pas déjà fait, choisissez un dossier quelque part dans le chemin et le partager. Selon votre environnement et 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, autorisez uniquement les droits de modification sur votre propre compte.

Maintenant, allez dans le dossier partagé ou dans celui-ci et partagez-le ou utilisez la ligne de commande comme suit. Supposons que vous partagiez le dossier "foo" comme "fooshare", alors vous pourriez le faire

net use x: \\mycomputername\fooshare\bar\folders /persistent:no

et le lecteur X: pointe maintenant directement vers le dossier "dossiers" à l'intérieur de ce partage, donc "x: \ oldfiles \ myoldfile.txt" est maintenant assez court.

(Le "/ persistent: no" signifie que cela ne survivra pas au prochain redémarrage et vous confondra plus tard. N'oubliez pas de partager votre dossier lorsque vous avez terminé.)

Rappelez-vous que vous n’avez pas à partager le dossier contenant le fichier si celui-ci se trouve déjà dans un dossier partagé que vous pouvez simplement mapper. par le partage et les dossiers imbriqués dans un dossier cible près au fichier et cela fonctionne bien.

J'ai dû utiliser cette technique pour effectuer une robocopy massive entre deux serveurs lorsque nous avons réalisé que les utilisateurs avaient mappé les lecteurs assez profondément dans la structure des dossiers, ils pouvaient donc utiliser 255 caractères, mais cela dépassait la longueur totale du chemin lorsque vous y accédez depuis la racine du lecteur local.


13
2018-02-21 17:18



vous pouvez éviter le partage en utilisant subst x: C:\Some\first\part\of\the\long\path et ensuite supprimer le lecteur avec subst x: /d - mihi
Bien essayé, mais lorsque vous avez 10 'k de dossiers imbriqués, ce n'est pas possible. - Julian Knight
le subst astuce semble bien fonctionner, tant que le nom du fichier n'est pas alors longtemps à faire passer plus de 260 caractères, même à la racine d'un lecteur. - Stephen Chung
Vous n'avez pas non plus besoin de partager explicitement un dossier avec net use, vous pouvez utiliser les partages d'administration par défaut: net use x: \\localhost\c$\bar\folders /persistent:no - kapex


La manière la plus simple que j'ai trouvée est de démarrer à partir d'un CD live Ubuntu.

Vous pouvez également créer un dossier partagé à mi-chemin du chemin, puis associer un lecteur réseau à celui-ci et supprimer le dossier mappé (même sur le même ordinateur).


9
2017-09-23 15:59



Il est amusant de constater combien de fois un CD Ubuntu Live aide à résoudre les problèmes de Windows ^^ - Ivo Flipse♦
J'ai remarqué que moi, réseau douteux, essayez un live CD, problème de système de fichiers essayez un live CD, table de partition corrompue, etc. etc. :-) - Col
C'est la seule solution qui a fonctionné pour moi. Je t'aime, Linux! <3 - David Frye
Exécutez bash à partir de Windows Aucun Linux requis. ;-) Aussi, si vous utilisez Windows 10, installez simplement "Windows Subsystem for Linux" Windows utilise essentiellement des hooks ubuntu pour faire le travail ... utils y compris "apt, ssh, rsync, find, grep, awk, sed, trier, xargs, md5sum, gpg, curl, wget, apache, mysql, python, perl, ruby, php, gcc, tar, vim, emacs, diff, patch et la plupart des dizaines de milliers de paquets binaires dans les archives Ubuntu! "Il s’agit d’un environnement de développement Linux très complet fonctionnant sous Windows. zdnet.com/article/ubuntu-and-bash-arrive-on-windows-10 - Dawesi
cygwin est une autre alternative pour exécuter des commandes LINUX dans Windows - atom88


Renommez le répertoire de couper / coller le fichier ailleurs, puis supprimez-le. Travaille ici

Ou juste à partir de l'invite de commande, si vous n'avez pas envie de traverser les problèmes.


5
2017-09-23 19:39



Cela fonctionne comme un charme. Creusez là-bas (pour moi, c'était super imbriqué node_modules dossiers), faites-le glisser sur votre bureau et supprimez-le. Rincez et répétez en montant quelques dossiers à la fois. Quel problème désagréable - nickb
Cela n'a pas fonctionné pour moi - l'opération de collage a échoué à cause du nom de fichier long - peu importe où le couper. - UpTheCreek


Probablement pas le meilleur moyen et je suis intéressé de voir ce que les autres pensent -

Je l'ai eu une fois et j'ai essayé quelques petites choses sans aucune chance. Plutôt que de chercher un bon outil, j'ai redémarré avec le disque Windows, je suis allé sur la console de récupération et je l’ai tout simplement supprimé. Travaillé la première fois et vraiment bien!

Aussi, juste fait un Google pour vous et a trouvé ceci - DelinvFile Semble bon, mais ne peut pas en témoigner.

Edit - Attention, juste vu ce qui précède n'est qu'un essai - Peut-être pas aussi bon que je le pensais!


1
2017-09-23 16:00



Le rimraf gratuit fonctionne très bien et a fonctionné lorsque toutes les autres idées ont échoué. Il nécessite node.js - Julian Knight