Le dossier ne porte pas le nom de fichier long. Si un fichier avec un nom long n'est pas supprimé et qu'une erreur apparaît indiquant que le système de fichiers ne prend pas en charge des noms aussi longs

Le titre s'est avéré long, mais il indique l'essence du problème qui sera décrit ici. Récemment, j'ai rencontré une situation pas très bonne. En triant le disque dur et en le débarrassant des éléments inutiles, j'ai découvert qu'un des fichiers n'avait pas été supprimé, mais l'erreur suivante est apparue : « Le système de fichiers ne prend pas en charge les noms de fichiers source aussi longs. Essayez de déplacer le fichier vers un dossier avec un chemin d'accès plus court ou spécifiez un nom de fichier plus court et réessayez."

Non seulement je ne pouvais pas supprimer le fichier, mais je ne pouvais pas non plus changer le nom en un nom plus court. Pour beaucoup, cela semble être une impasse, car il s'avère que le fichier n'est pas supprimé.

En fait, le problème peut être résolu très simplement et rapidement, et je vais maintenant décrire deux méthodes pour le résoudre, et c'est à vous de décider laquelle utiliser.

Que faire si le chemin vers la source est trop long, comment supprimer un tel fichier ?

Si vous disposez d'un fichier qui n'est pas supprimé en raison d'un nom long, il existe plusieurs options pour résoudre le problème. Par exemple, un fichier est imbriqué dans plusieurs répertoires, disons cinq ou même dix dossiers portant des noms de 10 à 20 caractères, cela peut alors être la raison pour laquelle le fichier n'est pas supprimé. Le fait est que Windows ne prend en charge aucun fichier dont le nom comporte plus de 260 caractères. Si cette limite est dépassée, l'erreur que j'ai montrée ci-dessus apparaîtra. Le nombre de dossiers avec leur propre nom et le nom du fichier lui-même doivent totaliser moins de 260 caractères. Le système a également une fonctionnalité : si cette limite est dépassée, nous pouvons toujours renommer les dossiers. Cela signifie que vous devez renommer tous les dossiers en un nom court, par exemple une lettre ou un chiffre.


Ce problème peut survenir non seulement parce que vous avez donné un nom si long. Cela m'est arrivé lorsque j'ai décidé de télécharger les fichiers du site Web à partir du serveur et de faire quelque chose. Comme les fichiers n'étaient plus nécessaires, j'ai supprimé tout le répertoire contenant les fichiers du site, mais il s'est avéré qu'il contenait un fichier avec un nom très long, ainsi que des noms de dossiers, ce qui ne m'a pas permis de tout supprimer.

Deuxième méthode aidera si le premier échoue. Le fait est que tous les dossiers menant à un fichier portant un nom long ne peuvent pas être renommés et la même erreur du système de fichiers se produira. Ensuite, vous pouvez créer un disque virtuel en utilisant l'un des sous-dossiers menant au fichier non supprimable. Maintenant, je vais vous montrer comment procéder.

Ouvrez la ligne de commande. Pour ce faire, appuyez sur la combinaison Win+R et entrez la commande cmd. Vous pouvez cliquer avec le bouton droit sur le menu Démarrer (ou sur la combinaison de touches Win+X) et y sélectionner Invite de commandes.

Maintenant, vous écrivez une commande qui créera un disque virtuel pour nous :

Vous devez sélectionner une lettre de lecteur qui n'est pas occupée par d'autres. La partition système est généralement indiquée par C et la deuxième partition par D ou E, puis sélectionnez-en une autre.

Le chemin d'accès au dossier doit être spécifié à partir du disque. Si cela est difficile pour vous, ouvrez le dossier qui fera office de disque virtuel et copiez-y le chemin dans l'Explorateur en haut.

Ma commande ressemble à ceci :

Lorsque nous allons sur Poste de travail, vous devriez y voir un lecteur avec la lettre que nous lui avons attribuée à partir de la ligne de commande. Ainsi, le chemin d'accès au fichier sera réduit de près de moitié, ce qui signifie que la longueur totale des caractères peut être inférieure à 260 caractères. Vous pouvez maintenant essayer de vous débarrasser des éléments indélébiles.


Pour supprimer un disque virtuel, vous devez entrer la commande :

substDiskLettre/d

Utiliser Total Commander

Sur Internet, j'ai découvert une méthode qui permet de supprimer des fichiers qui ne peuvent pas être supprimés à l'aide de . Bien sûr, l'inconvénient est que vous devrez installer des logiciels supplémentaires sur votre ordinateur, et tout le monde ne voudra pas le faire. Quoi qu’il en soit, je laisse cette méthode ici au cas où quelqu’un voudrait l’utiliser.

Téléchargez et installez le programme. Passons à l'onglet "Déposer" cliquez sur la rubrique "Modifier les attributs". Une fenêtre apparaît dans laquelle nous supprimons les coches de tous les attributs. S'il n'y a pas de coche à côté de l'élément en haut "Traiter le contenu du répertoire"- choisir. Maintenant, à partir du même programme, nous essayons de supprimer un fichier avec un nom long.


Nous utilisons l'archiveur 7-Zip

Pour cette tâche, nous aurons besoin d'un archiveur 7-Zip. Faites un clic droit sur le répertoire de départ et pointez la souris sur la partition "7-Zip" et sélectionnez l'élément "Ajouter aux archives".

Une fenêtre apparaît dans laquelle il vous suffit de cocher une seule case. "Supprimer les fichiers après compression". Cliquez ensuite sur OK.

Une archive de tout cela est créée sur le bureau et les dossiers contenant des fichiers longs sont simplement supprimés. Vous pouvez supprimer l'archive elle-même sans aucun problème.

Ce sont les moyens que nous avons examinés pour corriger l’erreur de non-suppression du fichier. Peut-être avez-vous d'autres options pour procéder ?

Sur l'un des projets j'ai eu l'occasion d'utiliser le module pour Drupal - validation côté client. Et ce n'est pas que le module soit mauvais, au contraire, il remplit pleinement sa fonctionnalité, à savoir qu'il vérifie le formulaire côté client. Mais les fichiers du module ont des noms assez longs, et à cause de l'un de ces fichiers, notre git a cessé de fonctionner correctement. Parce que je ne pouvais plus écrire d'informations dans ce dossier en raison de l'erreur suivante :

Impossible de copier le fichier/dossier. Nom/chemin du fichier de destination trop long

Ou aussi, mais en anglais :

Le ou les noms de fichiers seraient trop longs 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.

Après quelques recherches, il s'est avéré que la longueur maximale du chemin prise en charge par Windows 7 est de 260 caractères. Et comme tous les projets sont stockés dans mon dossier C:\Utilisateurs\\Documents\xampp\htdocs\git\- alors tous les projets étaient potentiellement à risque.

Options de solutions

J'ai vu 2 solutions possibles :

1. Déplacez xampp vers la tête du disque

2. Créez un alias pour ce chemin (par exemple, un lecteur nommé H)

La deuxième option semblait plus simple, car pour xampp les chemins ne changeront pas, mais avec git nous accéderons aux dossiers via l'alias créé. Eh bien, pour que l'EDI fonctionne correctement, vous devrez changer le chemin des projets.

Et donc, pour que Windows remplace le nom du lecteur par votre long chemin, exécutez la commande via cmd :

Subst H : C:\Users\\Documents\xampp\htdocs\git\

Ce n'est un secret pour personne que l'Explorateur Windows, comme la plupart des autres applications Windows, y compris PowerShell, ne peut pas fonctionner avec des objets du système de fichiers avec une imbrication de dossiers approfondie. dont la longueur du chemin dépasse 260 caractères. De plus, cette limitation n'existe qu'au niveau de l'application, et le système de fichiers NTFS lui-même prend en charge les chemins de fichiers jusqu'à 32767 personnages.

Cette limitation est imposée par la bibliothèque API Win32, et dont la longueur maximale du chemin est de 260 caractères ( MAX_PATH=260). De manière générale, le chemin est constitué des éléments suivants : +[chemin_de_256_caractères]+[ ] , et la longueur maximale d'un répertoire/fichier en NTFS est de 255 caractères en Unicode. Lors de l'utilisation des fonctions API Unicode, il est possible d'utiliser le chemin vers 32767 personnages. Grâce à cela, de nombreux programmes tiers (les mêmes gestionnaires de fichiers populaires, par exemple LOIN Et Commandant total) traite sans aucune difficulté les fichiers/dossiers dont la longueur du chemin dépasse 260 caractères.

Conseil. Vous pouvez contourner cette limitation de l'API Win32 et travailler avec des noms de fichiers longs en utilisant le format de chemin UNC, en spécifiant le chemin absolu du fichier à l'aide du préfixe de chemin de longueur étendue. \\?\ . Par exemple, comme ceci \\?\C:\SomeLongPath\LongNameFile.txt

Cette restriction ne s'applique pas non plus lorsque les utilisateurs ont un accès réseau aux fichiers via le protocole SMB (de ce fait, les structures de répertoires avec des chemins longs sont courantes sur les serveurs de fichiers contenant des données utilisateur). L'administrateur qui gère ce serveur ne peut pas gérer (supprimer/déplacer) les fichiers avec des chemins longs via l'interface standard de l'Explorateur Windows. Lorsque vous essayez de créer/copier un fichier dans un tel répertoire, une erreur apparaît :

Chemin de destination trop long. Le ou les noms de fichiers seraient trop longs pour le dossier de destination. Vous pouvez raccourcir le nom du fichier et réessayer, ou essayer un emplacement dont le chemin est raccourci.

D'autres programmes/boîtes de dialogue peuvent avoir leur propre façon de signaler la présence de la restriction.

D'accord, c'est drôle que nous soyons en 2014, et nous parlons toujours de la limite de 260 caractères sur la longueur maximale du chemin dans Windows... Mais il semble qu'aucun changement radical ne soit attendu dans un avenir proche, et même dans les tout derniers Windows 10 Technical Preview, cette limitation existe toujours.

Dans cet article, nous montrerons comment sous Windows vous pouvez travailler avec des fichiers dont le chemin dépasse 260 caractères. Dans ce cas, notre tâche consiste à supprimer un répertoire contenant des fichiers avec un chemin long.

Lorsque vous essayez de supprimer un tel répertoire de l'Explorateur, une erreur apparaît :

Le ou les noms de fichiers seraient trop longs pour le dossier de destination. Vous pouvez raccourcir le nom du fichier et réessayer, ou essayer un emplacement dont le chemin est raccourci.

Powershell ne peut pas non plus gérer correctement les répertoires et les fichiers dont les chemins sont volumineux dépassant 260 caractères. Lorsque vous essayez de supprimer un répertoire contenant de tels fichiers (C:\Install\MS SQL 2012 Express Edition 64 bit\verylongpath), une erreur apparaît :

Remove-Item .\verylongpath -Recurse

Remove-Item : Le chemin spécifié, le nom de fichier ou les deux sont trop longs. Le nom de fichier complet doit être inférieur à 260
caractères et le nom du répertoire doit contenir moins de 248 caractères.
À la ligne : 1 caractère : 1
+ Remove-Item .\verylongpath -Recurse
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : WriteError : (C:\Install\MS S...it\verylongpath:String) , PathTooLongExcepti
sur
+ FullyQualifiedErrorId : RemoveItemIOError,Microsoft.PowerShell.Commands.RemoveItemCommand

L'option la plus simple (elle est d'ailleurs suggérée dans la fenêtre d'erreur) est de raccourcir le nom des dossiers parents, réduisant ainsi la longueur totale du chemin (mais ce n'est pas toujours applicable).

Mklink /d c:\install\link « C:\Install\MS SQL 2012 Express Edition 64 bits\verylongpath »

Une autre option, qui rappelle le travail avec un lien symbolique, consiste à mapper le dossier problématique sur un disque virtuel (dans notre exemple X :), réduisant ainsi également la longueur du chemin :

Subst X : « C:\Install\MS SQL 2012 Express Edition 64 bits\verylongpath »

Vous pouvez désormais travailler avec des données sur le lecteur X :, dont les chemins d'accès aux fichiers ne dépasseront pas la limite. Une fois le travail terminé, vous pouvez supprimer le disque virtuel :

Subst X : /d

Mais personnellement, ce que j'aime le plus pour la tâche de suppression de données dans de telles situations, c'est la possibilité robocopy.exe, qui prend en charge le travail avec des chemins longs.

Utilisation de l'option /MIR, l'utilitaire robocopy peut créer une copie complète (miroir) du répertoire source dans le répertoire cible. Et si le dossier source est vide, toutes les données du dossier cible sont également effacées. Créons un dossier vide C:\Install\test et à l'aide de l'argument /MIR, copiez le contenu du dossier de test dans le dossier cible (si le nom du dossier contient des espaces ou des caractères cyrilliques, le chemin doit être mis entre guillemets).

Robocopy /MIR C:\Install\test "C:\Install\MS SQL 2012 Express Edition 64 bits\verylongpath"

Après avoir exécuté la commande, le contenu du répertoire C:\Install\MS SQL 2012 Express Edition 64 bit\verylongpath est effacé (remplacé par le contenu du répertoire vide).

Ainsi, aujourd'hui, nous avons montré quelques astuces simples que vous pouvez utiliser lorsque vous travaillez avec des dossiers sur des serveurs de fichiers contenant des dossiers dont la longueur du chemin dépasse la limite de 260 caractères.

Le système d'exploitation Windows nuisible vous empêche-t-il de supprimer un fichier et crie-t-il que son « chemin source est trop long » ? Dans cet article, je vais vous expliquer comment vaincre facilement et simplement, sans aucun programme, ce fléau en raccourcissant le nom du fichier.

Le chemin vers la source est trop long – pourquoi ?

Je voudrais expliquer tout de suite pourquoi un tel avertissement système apparaît et il n'est pas possible d'effectuer des actions de base de copie ou de suppression sur un fichier (dossier)…

La notification elle-même contient la réponse à cette question : le système de fichiers Windows ne prend pas en charge (ne comprend pas) les noms de fichiers source de plus de 255 caractères.

Mais le nom de votre fichier ou dossier est court, par exemple « Photos de vacances » ? Le fait est que le système « stupide » prend le chemin complet du fichier comme son nom. Si votre fichier ou dossier se trouve trop profondément dans le gestionnaire de fichiers, son nom ressemblera à ceci...

Ainsi, les symboles nominatifs sont rassemblés en un groupe de plus de 255 pièces.

Comment supprimer un fichier ou un dossier non supprimable dans ce cas ? C'est très simple : vous devez raccourcir le nom du fichier (chemin) en renommant les dossiers imbriqués.

Comment supprimer un fichier avec un nom long

Je vais vous montrer avec mon exemple comment supprimer un fichier avec un nom long qui, comme l'écrit le système, a un chemin d'accès à la source trop long.

Hier, j'ai décidé nettoyer votre ordinateurà partir d'anciennes copies de sauvegarde du site, mais elles ne voulaient pas être supprimées. Comme vous l'avez deviné, un avertissement est apparu indiquant que le chemin vers la source était trop long...

Dès le tout premier dossier de ce long chemin, j'ai renommé plusieurs choses...

...et j'ai essayé à nouveau de me débarrasser du fichier avec un nom désormais plus court - il est allé en toute sécurité au pays des fichiers supprimés.

Naturellement, le nouveau nom de fichier (dossier) doit être composé d'un caractère ou d'un chiffre, comme dans mon exemple.

C'est ainsi que le problème de la suppression de fichiers ou de dossiers portant un nom long est facilement résolu. Ce n’est bien sûr pas la seule méthode. Peut supprimer avec des programmes spéciaux ou via le registre - je viens de montrer la méthode manuelle. Pour certains, cela ne prendra qu'une minute, pour d'autres, cela prendra une demi-heure - c'est à vous de décider comment raccourcir le nom du fichier et le chemin trop long vers la source.

Jusqu'à de nouveaux conseils utiles et programmes informatiques intéressants.



Des questions ?

Signaler une faute de frappe

Texte qui sera envoyé à nos rédacteurs :