64 votes

Forcer la suppression des fichiers dont le nom est assez grand

J'utilise régulièrement Node.js pour gérer les dépendances des programmes que j'écris, rien de bien compliqué. Aujourd'hui, je me suis retrouvé avec une structure de dossiers comme celle-ci : enter image description here

La tentative de suppression d'un fichier s'est soldée par cette erreur :

Le(s) nom(s) du fichier source est(sont) plus grand(s) que ce qui est supporté par le fichier. système de fichiers. Essayez de vous déplacer vers un emplacement ayant un nom de chemin plus court, ou essayez de de renommer le(s) fichier(s) vers un nom plus court avant de tenter cette opération.

C'était déjà dans C:\, donc ça n'allait pas être beaucoup plus court.

80voto

Adam Points 1280

Utilisez l'outil Microsoft robocopy.exe .

  1. Créez un nouveau dossier vide, par ex. c:\empty
  2. Copiez ensuite ce dossier vide sur le dossier qui contient les longs noms de fichiers que vous essayez de supprimer, par ex. c:\myannoyingfolder . Faites cela comme suit dans l'invite de commande :

    robocopy /MIR c : \empty c : \myannoyingfolder

30voto

gd73 Points 409

Ok, disons que vous voulez supprimer un arbre D:\very\long\path vous n'avez pas nécessairement besoin d'utiliser des outils tels que Robocopy.

  1. Allez à la racine du lecteur qui contient le répertoire que vous ne pouvez pas supprimer
  2. Créez un répertoire avec un nom d'une seule lettre, par exemple D:\a
  3. Naviguez jusqu'à l'intérieur du répertoire que vous voulez supprimer, dans ce cas-ci cas D:\very\long\path
  4. Sélectionner tout ( Ctrl + A ) et Cut ( Ctrl - X )
  5. Naviguez vers le dossier que vous venez de créer
  6. Coller ( Ctrl - V )
  7. Maintenant, allez dans le répertoire racine et supprimez le dossier temporaire, dans ce cas-ci D:\a
  8. Ensuite, revenez en arrière et supprimez le répertoire d'origine

5voto

toddmo Points 462

Vous pouvez intégrer cette fonctionnalité dans le Shell de Windows. Mon amélioration de la réponse de Flo était trop longue pour un commentaire.

J'ai ajouté un Delete dans le menu contextuel de Windows.

enter image description here

Le site delete.reg ajoute des entrées de registre afin d'associer des dossiers au fichier robodelete.bat fichier batch.

supprimer.reg

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\Delete]

[HKEY_CLASSES_ROOT\Directory\shell\Delete\command]
"Extended"=""
@="\"D:\\Documents\\robodelete.bat\" \"%1\""

robodelete.bat

mkdir c:\empty
robocopy /MIR c:\empty %1
rmdir %1
rmdir c:\empty

Note : Vous devrez peut-être modifier les chemins d'accès des deux fichiers selon vos préférences.

AVERTISSEMENT : Il n'y a aucun moyen d'annuler cette commande. Elle n'utilise pas la corbeille et ne demande pas Y/N pour confirmer avant de détruire le dossier pour de bon !

5voto

Graham Klyne Points 141

L'outil de ligne de commande open-source SuperDelete ( GitHub ) a fonctionné pour moi après que les autres options aient échoué (Windows 10).

4voto

Seiyria Points 1708

J'ai commencé à taper ce problème en essayant une multitude de commandes, notamment del /F y rmdir /S (ainsi que le fait de maintenir la touche shift pendant la suppression pour essayer de contourner la corbeille). Je pense que rmdir /S a en fait supprimé tous les fichiers, ce qui m'a permis de procéder à la suppression des dossiers qui étaient des nœuds feuillus, puis de progresser dans l'arbre quelques nœuds à la fois. Finalement, je les ai tous nettoyés, mais c'était ridicule.

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