Comment supprimer un fichier avec un chemin trop long pour être supprimé [dupliquer]

203

Je travaillais avec un code source de vision par ordinateur que j'ai trouvé et que je ne réalisais pas qu'il créait un fichier de cache portant un nom TRÈS LONG et que je ne pouvais plus en supprimer les deux.

J'ai essayé de le renommer en un nom plus court, mais je ne peux rien modifier au fichier. J'ai également essayé de redémarrer mon ordinateur pour voir s'il disparaîtrait.

Le message d'erreur dit:

Chemin de destination trop long.

Le nom du fichier serait trop long pour le dossier de destination. Vous pouvez raccourcir le nom du fichier et réessayer ou essayer un emplacement dont le chemin est plus court.

capture d'écran

Comment puis-je supprimer les fichiers dans ce cas?

Chris
la source
Cela fonctionnerait-il à partir de la ligne de commande avec la delcommande? Quelque chose du del *.cachegenre devrait supprimer tous les fichiers .cache du répertoire en cours.
Ryan
"Chemin \ vers \ dossier \ CACHEI ~ Le système n'a pas pu trouver le fichier spécifié" a dit cela deux fois et il y a 2 fichiers dedans mais n'a rien fait
Chris
À bien y penser, vous pouvez cocher l'une des autres questions auxquelles vous avez déjà répondu. Celui-ci par exemple.
Ryan
1
Si ces deux fichiers sont les seuls restants dans le répertoire, vous aurez peut-être plus de chance en supprimant tout le répertoire. A partir de l'invite de commande, essayez rd /s directoryname ceci effacera directorynametous les fichiers / sous-répertoires qu'il
contient

Réponses:

353

En supposant que vous êtes sur Windows:

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

Accédez ensuite à la nouvelle lettre de lecteur et accédez aux fichiers portant des noms longs. Vous devriez maintenant pouvoir les renommer / supprimer / etc. Cela fonctionne parce que le chemin lui-même ne contient plus> 255 caractères.

Pour créer un sous-dossier

  1. Démarrer une invite de commande (aucun privilège d'administrateur requis)
  2. Utilisez cdpour naviguer dans le dossier que vous voulez aller (vous pouvez utiliser tabpour compléter automatiquement les noms)
  3. tapez subst j: .pour créer l'association driveletter. (au lieu de. vous pouvez aussi taper le chemin complet)
  4. Maintenant, dans l'explorateur, vous avez une nouvelle lettre de lecteur dans ce PC . Allez-y et faites ce que vous devez faire pour les fichiers .cache.
  5. Revenez à votre fenêtre cmd et tapez subst /d j:pour supprimer le lecteur ou redémarrez votre ordinateur.

EDIT: Un truc que j'ai appris qui peut raccourcir un peu cela. Dans la fenêtre de l'Explorateur où vous rencontrez des problèmes, cliquez sur la barre d'adresse pour pouvoir la saisir, puis tapez cmdet appuyez sur Enterpour lancer une invite de commande à cet emplacement, puis passez à l'étape 3. :)

EDIT2: D'accord, cette astuce peut être encore étendue. Si vous êtes dans l'explorateur sur le bon chemin, tapez simplement subst j: .dans la barre d'adresse et appuyez sur Entrée. Une fenêtre de commande apparaît, exécute la commande et se ferme à nouveau. Un nouveau lecteur apparaît dans l'explorateur.

LPChip
la source
26
robocopy empty_dir base_nested_dir / purge - Créez simplement un répertoire vide et dites à robocopy de tout purger dans le répertoire cible qui ne se trouve pas dans le répertoire vide stackoverflow.com/a/3320317/588759
rofrol
7
Je viens d’essayer cela et je ne pouvais pas supprimer le fichier en question. J’utilise cygwin avec Windows. Une autre solution consiste à supprimer le fichier de cette façon: rm -R / path / in / question tant qu’aucun autre programme n’utilise le fichier. vous êtes prêt à partir
John
1
J’ai eu un problème où SUBST ne reconnaissait pas J: en tant que paramètre (aucun autre lecteur virtuel disponible n’était visible); l’option cygwin mentionnée par John fonctionnait donc bien.
Jeudi
1
@rofrol, votre commentaire robocopy doit être une réponse: c'est beaucoup plus facile que de faire l'approche des noms de répertoires lorsque vous utilisez beaucoup de répertoires enfants (comme ceux créés dans node_modules)
Andy Brown
1
La solution de John a très bien fonctionné pour moi, je viens d'ajouter le paramètre -f (paramètre de force): rm -R -f / pathToDelete
Christophe Keller
66

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

Mais pour supprimer un fichier dont le nom est supérieur à 255 caractères:

  • Ouvrez une invite de commande en exécutant "CMD.EXE".
  • Naviguez jusqu'au dossier contenant le fichier
  • Utilisez la commande DIR / X qui affichera les noms abrégés des fichiers.
  • Supprimer en utilisant le nom abrégé.

c'est-à-dire que si le fichier s'appelle "verylongfilename.fil", le nom abrégé s'affichera comme quelque chose comme "verylo ~ 1.fil" et vous pourrez le supprimer en utilisant ce nom.

Veuillez noter que, bien que Windows puisse gérer des chemins beaucoup plus longs que 255 caractères, la plupart des interfaces graphiques (comme l'explorateur Windows) sont liées par la limite la plus courte.

Debra
la source
16
C'est une meilleure réponse que celle acceptée.
Ben
3
La réponse choisie est meilleure car vous pouvez supprimer des dossiers entiers avec cette méthode
mcont
2
mais dans Windows 7 semble que DIR / x ne change pas l'affichage du tout ici ... :(
gumuruh
3
Certains systèmes de fichiers NTFS n'ont PAS d'équivalent 8.3. Donc, cela ne fonctionne plus toujours.
Ross Presser
Del / S de CMD a travaillé pour moi même avec un grand nom le 8.
Jeff
5

Googlé: supprimer le nom de fichier long premier résultat

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

Impossible de supprimer le dossier: il est utilisé par une autre personne ou un autre programme. Impossible de supprimer le fichier: l'accès est refusé. Il y a eu violation 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 aider! Cliquez simplement avec le bouton droit sur le dossier ou le fichier et sélectionnez Unlocker. Si le dossier ou le fichier est verrouillé, une liste de casiers apparaîtra dans une fenêtre. Cliquez simplement sur Déverrouiller tout et vous avez terminé!

Wutnaut
la source
1
J'ai vu cela, mais je ne savais pas si unblocker pouvait être utilisé en toute sécurité, alors je l'ai ignoré, je vais l'essayer. EDIT: n'a pas fonctionné. cela fonctionne sur d'autres fichiers, mais unblocker n'apparaît pas dans le menu déroulant
Chris
Certainement la façon la plus simple de le faire, même s’il faut peut-être un redémarrage pour le terminer. Rien de mal avec 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 aucune poignée de verrouillage mais devrait proposer l'option Supprimer dans la liste déroulante par la suite.
Steve Pettifer
1
A fonctionné sans faille - ce qui est drôle, c’est que j’ai ce logiciel installé mais que j’ai eu l’impression de l’utiliser dans cette situation.
Daniel Sokolowski
N'a pas fonctionné pour un autre dossier dans lequel j'ai copié un dossier de jonction circulaire, mais ce qui a bien fonctionné a été de renommer chaque dossier de niveaux en un seul caractère 1, puis de le supprimer.
Daniel Sokolowski
C'était la seule réponse qui a fonctionné pour moi (j'utilise Windows 10). Merci beaucoup!
user26832
4

Microsoft dispose d'un article de base de connaissances utile sur la suppression de fichiers non supprimables . La cause n ° 4 vous concerne.

Votre meilleur choix serait probablement de mapper un lecteur sur le dossier dans lequel se trouve le fichier (résolution n ° 3), puis d'entrer via ce lecteur et de le supprimer.

Compro01
la source
1
Je n'avais jamais réalisé auparavant que je pouvais "mapper un lecteur réseau" sur un emplacement de mon propre disque dur. C'est ce que j'ai fait dans l'explorateur Windows. Après avoir navigué sur le lecteur, je pouvais facilement supprimer le dossier et son contenu. Même principe que les solutions de console présentées ci-dessus, mais il s’agit d’une solution d’interface graphique rapide et plus simple pour moi.
RandomHandle