2009-09-23 15:56:39 +0000 2009-09-23 15:56:39 +0000
203
203
Advertisement

Comment supprimer un fichier dans Windows avec un nom de fichier trop long ?

Advertisement

Ma femme a plusieurs fichiers et dossiers dont les noms de fichiers ont fini d'une manière ou d'une autre par être indéchiffrables (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. Quelqu'un connaît-il un bon utilitaire pour nettoyer des fichiers comme celui-ci ?

Advertisement

Réponses (8)

428
428
428
2012-08-29 13:38:16 +0000

Lorsque vous voulez supprimer complètement un répertoire et qu'il contient de longs chemins, robocopy fait un TRÈS bon travail :

mkdir empty_dir
robocopy empty_dir the_dir_to_delete /mir
rmdir empty_dir
rmdir the_dir_to_delete

Cela fonctionne parce que robocopy en interne [ utilise les versions Unicode des fonctions Win32, avec le préfixe \?Lorsque vous voulez supprimer complètement un répertoire et qu'il contient de longs chemins,robocopy` fait un TRÈS bon travail :

mkdir empty_dir
robocopy empty_dir the_dir_to_delete /mir
rmdir empty_dir
rmdir the_dir_to_delete

Cela fonctionne parce que robocopy en interne utilise 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 pouvez avoir besoin de passer par ce processus plus d'une fois pour vous débarrasser de tous les fichiers.

91
91
91
2009-09-23 16:01:40 +0000

À partir d'une invite de commande :

dir /X

Cela permettra de lister vos fichiers/dossiers au format de nom court. Utilisez ensuite le nom court exactement comme il est écrit pour supprimer le fichier :

del LONGF~1.txt
53
Advertisement
53
53
2009-09-23 17:40:55 +0000

Je me fraie un chemin dans le chemin, en renommant chaque dossier parent successif à “1” et en essayant de le supprimer. Vous raccourcissez effectivement le chemin à chaque fois et je n'ai jamais eu à travailler dans plus de 4 ou 5 répertoires jusqu'à ce que je sois enfin capable de supprimer toute la structure des répertoires (ce qui peut ou non être ce que vous voulez). Vous pouvez également le faire à partir du dernier dossier enfant et travailler en montant ou en descendant.

13
13
13
2009-09-23 16:12:29 +0000

Dans certains programmes, y compris l'invite de commande (cmd.exe), vous pouvez contourner la limite de longueur du fichier en préfixant le chemin complet par \.Dans certains programmes, y compris l'invite de commande (cmd.exe`), vous pouvez contourner la limite de longueur du fichier en préfixant le chemin complet par comme ceci :

\.\C:\some directory\other directory\a file with long name
13
Advertisement
13
13
2012-02-21 17:18:15 +0000

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 le raccourcir en “entrant par effraction” à mi-chemin (ou plus) en utilisant une lettre de lecteur mappée pointant vers un dossier tout au long du chemin.

afin d'avoir c:\some\long\path…\and\foo\bar\folders\oldfiles\myoldfile.txt.

Puis mappez une lettre de lecteur arbitraire à un endroit du chemin de sorte que le premier morceau du chemin ne fasse que quelques caractères. Condition préalable - le dossier doit se trouver dans un dossier partagé (ce qui peut être déjà le cas s'il se trouve sur un serveur, ce qui est l'endroit où j'ai dû faire cela), et s'il ne l'est pas déjà, alors choisissez un dossier quelque part dans le chemin et partagez-le. Selon votre environnement et votre niveau de paranoïa, autorisez tout le monde à modifier l'accès au partage tant que les permissions NTFS sont raisonnablement restrictives. Si vous le souhaitez, n'autorisez les droits de modification que pour votre propre compte.

Allez maintenant dans le dossier partagé ou dans un dossier à l'intérieur de celui-ci et partagez-le, ou utilisez la ligne de commande comme suit. Supposons que votre dossier partagé “foo” soit “fooshare”, alors vous pourriez faire

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

et le lecteur X : pointe maintenant directement sur le dossier “folders” à 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 embrouillera plus tard. N'oubliez pas de dé-partager votre dossier lorsque vous avez terminé).

Rappelez-vous, vous n'êtes pas obligé de partager le dossier contenant le fichier nécessairement, s'il se trouve déjà dans un dossier partagé, vous pouvez simplement faire correspondre à travers le partage et les dossiers imbriqués à un dossier cible près du fichier et cela fonctionne bien.

J'ai dû utiliser cette technique en faisant une énorme robocopie entre deux serveurs lorsque nous avons réalisé que les utilisateurs avaient mappé des lecteurs assez profondément dans la structure des dossiers, de sorte qu'ils avaient pu utiliser 255 caractères à partir de là, mais cela dépassait la longueur totale du chemin d'accès au fichier lorsqu'on y accédait depuis la racine du lecteur local.

9
9
9
2009-09-23 15:59:00 +0000

Le moyen le plus simple que j'ai trouvé est de démarrer à partir d'un CD live d'ubuntu.

Comme alternative, vous pouvez créer un dossier partagé à mi-chemin du chemin, puis y connecter un lecteur réseau et effectuer la suppression du dossier mappé (même sur la même machine)

5
Advertisement
5
5
2009-09-23 19:39:20 +0000

Renommez le répertoire de copier/coller du fichier ailleurs, puis supprimez-le. Fonctionne ici.

Ou simplement à partir de l'invite de commande, si vous n'avez pas envie de vous donner du mal.

1
1
1
2009-09-23 16:00:00 +0000

Ce n'est probablement pas la meilleure solution et je suis curieux de voir ce que les autres en pensent -

j'ai déjà eu cette expérience et j'ai essayé quelques trucs sans succès. Plutôt que de chercher un bon outil, j'ai redémarré avec le disque de Windows, je suis allé à la console de récupération et je l'ai simplement effacé de là. Cela a fonctionné du premier coup et vraiment bien !

Aussi, j'ai fait un Google pour vous et j'ai trouvé ceci - DelinvFile semble bon mais ne peut pas en témoigner.

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

Advertisement
Advertisement