Le chemin final spécifié est trop 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 ? Que faire si le chemin vers la source est trop long, comment supprimer un tel fichier

Ce n'est un secret pour personne Windows Explorer, 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 fichier lui-même Système NTFS 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, beaucoup programmes tiers(le même populaire gestionnaires de fichiers, 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). Administrateur au service ce serveur impossible via l'interface standard de l'Explorateur Windows Explorer gérer (supprimer/déplacer) les fichiers avec des chemins longs. 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 signaler la présence de la restriction à leur manière.

D’accord, c’est drôle que nous soyons en 2014 et qu’on parle toujours de la limite de 260 caractères par page. longueur maximale chemins dans Windows... Mais il semble qu'il n'y en aura pas dans un avenir proche des changements dramatiques n'est pas attendu, et même dans le tout dernier aperçu technique de Windows 10, 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(s) nom(s) de fichier 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 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 contenues dossier cible sont également nettoyés. Créons un dossier vide C:\Installer\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.

Voici un exemple de structure de dossiers que j’ai appelé la « grande poupée » :

Comme vous pouvez le voir, sur le lecteur « D » (Données), il y a un dossier vidéo source, dedans il y a un dossier « Films », dedans il y a « Tout ce dont vous avez besoin pour regarder des films » et puis de la même manière un dossier dans un dossier. Dans le même temps, de nombreux dossiers ont des noms et des noms longs - plus de 10 à 15 caractères, ce qui donnera au total plus de 260 caractères dans tous les noms. Et si à la fin d'une telle "matriochka" il y a un fichier, il se peut que vous ne puissiez pas travailler avec lui, vous pouvez... Parfois, le système lui-même ne vous permet pas de créer finalement un dossier ou un fichier qui dépasse le nombre de caractères autorisé, mais parfois, pour une raison quelconque, cela se produit.

Tout d’abord, pour les débutants, je vais expliquer ce qu’est un chemin de fichier et de dossier. Le chemin est ce qu'on appelle l'adresse sur l'ordinateur où se trouve le fichier ou le dossier. Par exemple, un fichier appelé « Mon fichier.txt » se trouve sur le disque local D : dans le dossier « Documents ». Ensuite, le chemin d'accès à ce fichier ressemblera à ceci :

D:\Documents\Mon fichier.txt

Ou, par exemple, voici à quoi ressemblera le chemin de l'exemple ci-dessus, où j'ai montré une structure de dossiers complexe.

Comme vous pouvez le constater, le nombre de caractères dans le chemin ci-dessus est important et il est possible qu'à la fin il y ait un fichier ou un dossier avec un nom long que vous ne pouvez pas supprimer.

Lorsque vous essayez de supprimer un fichier avec un nom de chemin long, vous recevrez une fenêtre avec une erreur comme celle-ci :

J'ai essayé de recréer artificiellement le problème et voici ce que j'ai obtenu.

Sur le lecteur «D», j'ai créé un dossier portant le nom court «1» et y ai placé un fichier portant un nom très long. Voici un exemple :

Maintenant, je renomme également ce dossier « 1 » en un nom très long, par exemple :

Fait intéressant, Windows vous permet librement de renommer un dossier avec un nom aussi long, malgré le fait que le nombre de caractères dans le nom de ce dossier + nom de fichier dépasse déjà 260 ! Eh bien, après avoir renommé le dossier en un nom long, je ne peux plus supprimer le fichier qui s'y trouve et obtenir l'erreur affichée.

Ou voici un autre exemple... Je gère le site Web du Collège de fabrication d'instruments de Moscou, où je travaillais auparavant à temps plein, et j'utilise parfois une copie du site sur mon ordinateur pour tester de nouveaux « goodies » pour le site. Que se passe-t-il si j'installe quelque chose de mauvais et que le site Web sur l'hébergement meurt ? :) Et donc je le vérifie sur mon ordinateur et si tout est en ordre, alors je le configure sur un vrai site internet situé sur l'hébergement. Ainsi, une fois, j'ai transféré l'intégralité du site de l'hébergement pour tester une chose, et après avoir fini de travailler, j'ai décidé de supprimer le dossier contenant le site de mon ordinateur. Après tout, il pèse environ 6 Go. L'intégralité du site a été supprimée, à l'exception d'un certain nombre de dossiers. J'ai commencé à chercher et j'ai vu que les dossiers contenant un fichier avec un nom long sous forme de hiéroglyphes n'étaient pas supprimés :

J'ai essayé de supprimer à nouveau ce fichier avec un nom long et j'ai vu la même erreur que celle mentionnée ci-dessus. J'ai essayé de le renommer, mais ça ne marche pas non plus. Eh bien, j'ai dû réfléchir à la manière de résoudre le problème.

Comment résoudre le problème de la suppression d'un dossier/fichier avec un nom de chemin long !

J'ai essayé 2 façons de supprimer un dossier/fichier avec un nom long dans le chemin d'accès. Les deux ne sont pas techniquement difficiles (surtout le 1er), donc je pense qu'un débutant peut s'en sortir s'il fait tout exactement comme je le montre :

    Renommez plusieurs dossiers dans un chemin de fichier en plus nom court. C’est la solution la plus simple qui devrait déjà en aider beaucoup ! Supposons que vous ayez un fichier dans un dossier avec un nom très long que vous ne pouvez pas supprimer, ouvrir, copier et avec lequel vous ne pouvez généralement pas travailler.

    Essayez ensuite simplement de renommer le dossier dans lequel se trouve le fichier avec un nom long, par exemple en « 1 ». Permettez-moi de revenir à l'un des exemples ci-dessus. Voici un dossier avec un nom long :

    À l’aide de l’Explorateur Windows standard, je renomme le nom de ce dossier en « 1 » et voici à quoi ressemble maintenant le chemin d’accès au fichier :

    Vous pouvez désormais travailler avec le fichier en toute sécurité ; le système vous permettra de l'ouvrir, de le renommer et de le supprimer.

    Si vous avez une longue arborescence de dossiers, c'est-à-dire comme une poupée gigogne, dans un dossier il y en a un autre, dedans il y en a un autre, puis un autre, puis commencez à renommer à partir du tout premier dossier de cette poupée gigogne. Pas avec le dernier de la liste, mais avec le premier !

    Il se peut que les dossiers grande quantité et renommer certains d’entre eux ne fonctionnera pas à cause de la même erreur ou cela vous prendra beaucoup de temps. Dans ce cas, je suggère la deuxième méthode.

    La méthode consiste à prendre un dossier, par exemple, au milieu d'une arborescence commune et à le connecter en tant que disque virtuel. Un disque virtuel est quelque chose qui nous rappelle un disque ordinaire. disque local, mais qui est simplement lié à un dossier spécifique, par exemple, pour une interaction rapide avec celui-ci.

    Disons que vous avez un long chemin comme celui-ci :

    D:\Vidéo\Mes films\Tout ce dont vous avez besoin pour regarder des films\Programmes pour regarder des films\Comment ouvrir des films MP4\Liste des exemples de films MP4\Liste des programmes pour ouvrir MP4\Ce qu'il ne faut pas faire lors de l'ouverture de fichiers MP4

    Supposons que dans le tout dernier dossier, nous ayons une sorte de fichier problématique avec lequel nous ne pouvons pas travailler, car le chemin d'accès, comme nous le voyons, est assez long :)

    Nous pouvons prendre et connecter l'un des dossiers avec un nom long au milieu du chemin en tant que disque virtuel. Supposons que ce soit le dossier « Programmes pour regarder des films ».

    Pour connecter un disque virtuel, nous avons besoin de la ligne de commande Windows, c'est-à-dire console.

    Vous pouvez l'ouvrir via Recherche Windows. Dans la recherche, tapez « Ligne de commande » :

    Dans la fenêtre ligne de commande nous devons taper la commande:

    substitut virtual_disk_letter "chemin_vers_dossier"

    Vous pouvez définir n'importe quelle lettre de lecteur, à condition qu'elle ne soit pas déjà occupée par l'un des lecteurs locaux. Par exemple, vous disposez d'un lecteur local C et D, ce qui signifie que vous ne pouvez plus appeler le lecteur virtuel avec la même lettre. Vous pouvez l'appeler, par exemple, la lettre « X », car elle est rarement utilisée sous Windows.

    Pour le chemin du dossier, vous insérez le chemin du dossier que vous souhaitez connecter en tant que dossier virtuel. Comme je l'ai déjà dit, dans mon exemple, nous créerons « Programmes pour regarder des films » sous la forme d'un dossier virtuel, ce qui signifie que le chemin doit être spécifié comme ceci :

    D:\Vidéo\Mes films\Tout ce dont vous avez besoin pour regarder des films\Programmes pour regarder des films\

    Ainsi, la commande finale dans mon cas ressemblera à ceci :

    subst X : "D:\Vidéo\Mes films\Tout ce dont vous avez besoin pour regarder des films\Programmes pour regarder des films\"

    Pour exécuter la commande saisie, appuyez sur la touche « Entrée » du clavier. Le disque virtuel sera créé.

    Passons maintenant à l'Explorateur Windows, allez dans la section « Ce PC » (ou « Ordinateur ») et voyez-y le disque virtuel créé :

    Vous pouvez le distinguer par sa lettre. J'ai attribué la lettre "X" au disque virtuel. Maintenant, si nous ouvrons ce disque virtuel, nous nous retrouverons immédiatement dans le dossier « Programmes pour regarder des films ». Ceux. nous avons pris et coupé la moitié du chemin vers le dossier final.

    En comparaison...

    Auparavant, le chemin d'accès au dossier final ressemblait à ceci :

    D:\Vidéo\Mes films\Tout ce dont vous avez besoin pour regarder des films\Programmes pour regarder des films\Comment ouvrir des films MP4\Liste des exemples de films MP4\Liste des programmes pour ouvrir MP4\Ce qu'il ne faut pas faire lors de l'ouverture de fichiers MP4

    Après avoir connecté le disque virtuel au dossier « Programmes pour regarder des films », le chemin vers le dossier final ressemble à ceci :

    X:\Comment ouvrir des films MP4\Liste des exemples de films MP4\Liste des programmes pour ouvrir MP4\Ce qu'il ne faut pas faire lors de l'ouverture de fichiers MP4

    Sentez-vous la différence ? Le chemin est raccourci de moitié, puisque la lettre de lecteur nous dirige immédiatement vers le dossier au milieu du chemin :) Et comme le chemin est considérablement raccourci, vous avez probablement maintenant supprimé la limite de caractères dans les noms de fichiers et de dossiers et pouvoir supprimer un fichier ou un dossier avec un nom long !

    Après avoir résolu le problème avec le fichier, le disque virtuel peut être à nouveau supprimé afin qu'il ne devienne pas une horreur dans l'Explorateur.

    Pour ce faire, ouvrez à nouveau l'invite de commande Chaîne Windows et entrez la commande :

    Subst lettre_disque_virtuel /d

    Dans mon cas, la lettre du lecteur est « X », donc la commande ressemblerait à ceci :

Lorsque je réfléchissais aux options pour résoudre le problème, comment supprimer un dossier ou un fichier avec un nom long, j'ai trouvé une autre option sur Internet : supprimer le fichier problématique via le programme Total Commander. Je l'ai essayé, ça n'a pas marché, c'est pourquoi je n'ai pas recommandé cette méthode :)) Et la méthode, même si elle fonctionnerait pour quelqu'un, n'est honnêtement pas amusante, car il faut l'installer programme supplémentaire sur votre ordinateur dans le but de supprimer un seul fichier ou dossier portant un nom long...

Je pense que si un problème similaire survient, que j'ai rencontré plus d'une fois, l'une des méthodes décrites ci-dessus vous aidera certainement.

C'est tout! A bientôt dans les prochains articles ;)

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 des noms aussi longs. fichiers source. 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 dépasse 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 clic-droit souris sur le menu Démarrer (ou la combinaison de touches Win+X) et sélectionnez-y la ligne de commande.

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 les 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 ?

Partager