221 votes

Comment supprimer un fichier dont le chemin est trop long pour être supprimé ?

Je travaillais avec un code source de vision par ordinateur que j'ai trouvé et je n'ai pas réalisé qu'il crée un fichier cache qui a un nom TRÈS LONG et maintenant je ne peux pas supprimer les 2.

J'ai essayé de le renommer en un nom plus court mais je ne peux rien faire sur le fichier. J'ai également essayé de redémarrer mon ordinateur pour voir s'il allait disparaître.

Le message d'erreur dit :

Le chemin de destination est trop long.

Le(s) nom(s) de fichier serait(ent) trop long(s) pour le(s) dossier de destination. Vous pouvez raccourcir le nom du fichier et réessayer, ou essayer une emplacement qui a un chemin plus court.

screenshot

Comment puis-je supprimer les fichiers dans ce cas ?

0 votes

Cela fonctionnerait-il à partir de la ligne de commande avec l'option del commande ? Quelque chose du genre del *.cache devrait supprimer tous les fichiers .cache dans le répertoire actuel.

0 votes

"Chemin \to\folder\CACHEI ~ Le système n'a pas pu trouver le fichier spécifié" a dit cela deux fois et il y a 2 fichiers là-dedans mais n'a rien fait.

0 votes

En y réfléchissant bien, vous pourriez vérifier l'une des autres questions auxquelles il a déjà été répondu. Celui-là par exemple.

378voto

LPChip Points 53736

En supposant que vous êtes sous Windows :

Ce que je fais toujours, c'est utiliser subst pour créer une association de lettres de lecteur avec une partie du chemin.

Ensuite, allez sur la nouvelle lettre de lecteur et naviguez vers les fichiers qui ont des noms longs. Vous devriez maintenant être en mesure de les renommer/supprimer/etc. La raison pour laquelle cela fonctionne est que le chemin lui-même ne contient plus >255 caractères.

Pour créer un dossier de fond

  1. Lancez une invite de commande (aucun privilège d'administrateur n'est nécessaire).
  2. Utilisez cd pour naviguer vers le dossier où vous voulez aller (vous pouvez utiliser tab pour autocompléter les noms
  3. type subst j: . pour créer l'association driveletter. (au lieu du . vous pouvez aussi taper le chemin entier)
  4. Maintenant, dans l'Explorer, vous avez une nouvelle lettre de lecteur dans Ce PC . Allez-y et faites ce que vous devez faire pour les fichiers .cache.
  5. Retournez à votre fenêtre cmd et tapez subst /d j: pour retirer le disque ou bien redémarrer votre PC.

EDIT : Une astuce que j'ai apprise et qui peut raccourcir considérablement la procédure. Depuis la fenêtre de l'Explorateur où vous avez des problèmes, cliquez sur la barre d'adresse pour pouvoir y taper, puis tapez cmd et appuyez sur Enter pour lancer une invite de commande à cet endroit, puis passez à l'étape 3 :)

EDIT2 : Ok, cette astuce peut être étendue encore plus. Si vous êtes dans l'explorateur au bon endroit, tapez simplement subst j: . dans la barre d'adresse et appuyez sur la touche Entrée. Une fenêtre de commande s'ouvre, exécutez la commande et refermez-la, et voilà, un nouveau lecteur s'affiche dans l'explorateur.

30 votes

Robocopy empty_dir base_nested_dir /purge -- Créez simplement un répertoire vide, et dites à robocopy de purger tout ce qui se trouve dans le répertoire cible et qui n'est pas dans le répertoire vide stackoverflow.com/a/3320317/588759

7 votes

Je viens d'essayer et je n'ai pas pu supprimer le fichier en question J'utilise cygwin avec Windows, une solution alternative est de supprimer le fichier de cette façon : rm -R /path/in/question tant qu'aucun autre programme n'utilise le fichier, tout va bien.

1 votes

J'ai eu un problème où SUBST ne reconnaissait pas J : comme paramètre (il ne voyait pas non plus les lecteurs virtuels disponibles), donc l'option cygwin mentionnée par John a bien fonctionné.

70voto

Debra Points 4230

Votre question demande comment supprimer un fichier lorsque le nom du fichier lui-même est trop long. Si le chemin d'accès est trop long et pas seulement le nom du fichier lui-même, vous pouvez facilement renommer les dossiers pour raccourcir le chemin.

Mais pour supprimer un fichier dont le nom comporte plus de 255 caractères :

  • Ouvrez une invite de commande en exécutant "CMD.EXE".
  • Naviguez vers le dossier contenant le fichier
  • Utilisez la commande DIR /X qui affichera les noms courts des fichiers.
  • Supprimer en utilisant le nom court.

Par exemple, si le fichier est nommé "verylongfilename.fil", le nom court sera affiché comme quelque chose comme "verylo~1.fil" et vous pouvez supprimer en utilisant ce nom.

Veuillez noter que, bien que Windows puisse gérer des chemins d'accès de plus de 255 caractères, la plupart des interfaces graphiques, comme l'Explorateur Windows, sont limitées par la limite la plus courte.

17 votes

C'est une meilleure réponse que celle qui a été acceptée.

3 votes

La réponse choisie est meilleure car vous pouvez supprimer des dossiers entiers avec cette méthode.

2 votes

Mais sous Windows 7, il semble que DIR /x ne change rien à l'affichage... :(

5voto

Wutnaut Points 720

Googlé : supprimer un nom de fichier long Premier résultat

Utiliser Unlocker http://www.filehippo.com/download_unlocker/

Impossible de supprimer un dossier : Il est utilisé par une autre personne ou un autre programme Impossible de supprimer un fichier : L'accès est refusé Il y a eu une violation de partage de partage. Le fichier source ou de destination est peut-être en cours d'utilisation. Le fichier est utilisé par un autre programme ou utilisateur. Assurez-vous que le disque n'est pas plein ou protégé en écriture et que le fichier n'est pas en cours d'utilisation.

Unlocker peut vous aider ! Il suffit de cliquer avec le bouton droit de la souris sur le dossier ou le fichier et de sélectionner Unlocker. Si le dossier ou le fichier est verrouillé, une fenêtre listant les verrous apparaîtra. Cliquez simplement sur Tout déverrouiller et vous avez terminé !

1 votes

J'ai vu ça mais je ne savais pas si l'unblocker était sûr à utiliser alors je l'ai ignoré, je vais l'essayer. EDIT : ça n'a pas marché. Ça marche pour les autres fichiers mais unblocker n'apparaît pas dans la liste déroulante.

0 votes

C'est certainement le moyen le plus simple de le faire, même si un redémarrage est nécessaire pour terminer. Je n'ai rien à redire sur Unlocker - je l'utilise depuis des années et c'est un utilitaire très utile. Dans le cas d'un fichier ou d'un dossier dont le chemin est trop long, il ne trouvera pas de poignée de verrouillage mais devrait proposer l'option Supprimer dans la liste déroulante qui suit.

1 votes

Cela a fonctionné sans problème - le plus drôle, c'est que j'ai installé ce logiciel, mais je n'ai jamais pensé à l'utiliser dans cette situation.

4voto

Compro01 Points 226

Microsoft a un article utile de la base de connaissances sur la suppression des fichiers indélébiles . La cause n°4 est pertinente pour vous.

Le mieux serait probablement de mapper un lecteur au dossier dans lequel se trouve ce fichier (résolution n°3), puis d'entrer par ce lecteur et de le supprimer.

1 votes

Je n'avais jamais réalisé auparavant que je pouvais "mapper un lecteur réseau" à un emplacement sur mon propre disque dur. C'est ce que j'ai fait dans l'Explorateur Windows. Après avoir navigué jusqu'au lecteur, j'ai pu facilement supprimer le dossier et son contenu. Le principe est le même que celui des solutions de la console présentées ci-dessus, mais cette solution rapide de l'interface graphique était plus facile pour moi.

0 votes

J'adore "Résolution 5 : Utiliser un outil qui peut traverser des chemins profonds", quelle ironie. Les outils Windows ne peuvent pas le faire donc vous pouvez aussi installer quelque chose comme cygwin pour le faire. Il y a probablement d'autres consoles Windows qui sont capables de traverser de longs chemins de fichiers.

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