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 de système de fichiers profondément imbriqués, la longueur du chemin vers lequel dépasse 260 caractères. De plus, cette restriction 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, où la longueur maximale du chemin est de 260 caractères ( MAX_PATH=260). En général, le chemin est formé des éléments suivants : +[path_of_256_characters]+[ ] , et la longueur maximale d'un seul répertoire/fichier en NTFS est de 255 caractères en Unicode. Lors de l'utilisation des fonctions de l'API Unicode, il est possible d'utiliser le chemin avant 32767 personnages. Grâce à cela, de nombreux programmes tiers (les mêmes gestionnaires de fichiers populaires, par exemple LOIN et Commandant total) gère les fichiers/dossiers avec des chemins de plus de 260 caractères sans aucune difficulté.

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 vers le fichier à l'aide du préfixe de chemin de longueur étendue. \\?\ . Par exemple, donc \\?\C:\SomeLongPath\LongNameFile.txt

Cette restriction ne s'applique pas non plus à l'accès réseau des utilisateurs aux fichiers via le protocole SMB (de ce fait, les structures de répertoires avec de longs chemins se trouvent souvent sur les serveurs de fichiers avec des données utilisateur). L'administrateur qui maintient ce serveur ne peut pas gérer (supprimer/déplacer) les fichiers avec de longs chemins 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 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

D'autres programmes/boîtes de dialogue peuvent signaler la présence d'une restriction à leur manière.

D'accord, c'est marrant que l'on soit en 2014 en dehors de la fenêtre, et on parle toujours de la limite de 260 caractères sur la longueur maximale du chemin sous Windows... Mais il semble qu'aucun changement majeur ne soit prévu dans un futur proche, et même dans le très frais Windows 10 Technical Preview, cette limitation existe toujours.

Dans cet article, nous allons vous montrer comment vous pouvez travailler avec des fichiers dans Windows qui ont des chemins de plus de 260 caractères. Dans ce cas, notre tâche consiste à supprimer un répertoire contenant des fichiers avec une grande longueur de chemin.

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

Le ou les noms 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 gère pas non plus correctement les répertoires et les fichiers avec des chemins 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 comporter moins de 248 caractères.
A la ligne:1 car:1
+ Remove-Item .\verylongpath -Recurse
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : WriteError : (C:\Install\MS S...it\verylongpath:String) , PathTooLongExcepti
au
+ ID d'erreur entièrement qualifié : RemoveItemIOError, Microsoft.PowerShell.Commands.RemoveItemCommand

L'option la plus simple (qui, en fait, est proposée dans la fenêtre avec une erreur) consiste à raccourcir le nom des dossiers parents, en réduisant la longueur totale du chemin (mais pas toujours applicable).

Mklink /d c:\install\link "C:\Install\MS SQL 2012 Express Edition 64 bit\verylongpath"

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

Subst X : "C:\Install\MS SQL 2012 Express Edition 64 bits\trèslongchemin"

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

Sous-titre X : /d

Mais personnellement, pour la tâche de supprimer des données dans de telles situations, j'aime les possibilités robocopy.exe, qui prend en charge les chemins longs.

Avec options /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 en utilisant l'argument /MIR, nous copierons le contenu du dossier de test dans celui cible (si le nom du dossier contient des espaces ou des caractères cyrilliques, le chemin doit être entre guillemets).

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

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

Donc, aujourd'hui, nous vous 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 de chemin dépasse la limite de 260 caractères.

Le titre s'est avéré long, mais il indique l'essence du problème, qui sera décrit ici. J'ai récemment rencontré une situation pas si bonne. Lors du tri sur le disque dur et du nettoyage inutile, j'ai constaté que l'un des fichiers n'était pas 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 dont le chemin d'accès est plus court ou fournissez un nom de fichier plus court et réessayez."

Non seulement je n'ai pas pu supprimer le fichier, mais j'ai également échoué à changer le nom en un nom plus court. Pour beaucoup, cela semblerait être une impasse, car il s'avère que le fichier n'est pas supprimé.

En fait, le problème est résolu très simplement et rapidement, et maintenant je vais 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 avez 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 chacun, cela peut ê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 qui ont leurs propres noms 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. Et cela signifie que vous devez renommer tous les dossiers en un nom court, par exemple une lettre ou un chiffre.


Un tel problème peut apparaître non seulement parce que vous avez donné un nom aussi long. Cela m'est arrivé lorsque j'ai décidé de télécharger les fichiers du site à partir du serveur et de faire quelque chose. Comme les fichiers n'étaient plus nécessaires, j'ai supprimé tout le répertoire avec 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, et cela 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 avec un nom long ne peuvent pas être renommés et l'erreur du système de fichiers se bloquera toujours. Ensuite, vous pouvez créer un lecteur virtuel en utilisant l'un des sous-dossiers menant au fichier non amovible. Maintenant, je vais vous montrer comment le faire.

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

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

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

Le chemin d'accès au dossier doit être spécifié à partir du disque. Si cela vous cause des difficultés, ouvrez le dossier qui agira comme un disque virtuel et copiez son chemin dans l'explorateur en haut.

Ma commande ressemble à ceci :

Lorsque nous allons dans Poste de travail, vous devriez voir un disque 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 de l'ineffaçable.


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

substDriveLetter /d

Utilisation de Total Commander

Sur Internet, j'ai trouvé une méthode qui vous permet de supprimer des fichiers non amovibles à l'aide de . Bien sûr, l'inconvénient ici est que vous devez installer un logiciel supplémentaire sur votre ordinateur, et tout le monde ne veut pas le faire. Dans tous les cas, je vais laisser cette méthode ici, au cas où quelqu'un voudrait l'utiliser.

Téléchargez et installez le programme. Passons à l'onglet "Dossier" cliquer sur une rubrique "Modifier les attributs". Une fenêtre apparaît où nous supprimons les cases à cocher de tous les attributs. Si la case à cocher à côté de l'élément n'est pas en haut "Traiter le contenu des répertoires"- choisir. Maintenant, à partir du même programme, nous essayons de supprimer un fichier avec un nom long.


Nous utilisons l'archiveur 7-Zip

Dans ce cas, nous avons besoin de l'archiveur 7-Zip. Faites un clic droit sur le répertoire personnel et déplacez la souris sur la partition "7-Zip" et choisissez l'article "Ajouter aux archives".

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

Une archive de toutes ces qualités est créée sur le bureau et les dossiers contenant un long fichier sont simplement supprimés. Vous pouvez supprimer l'archive elle-même sans problème.

Voici les moyens de corriger l'erreur d'un fichier qui ne peut pas être supprimé, nous avons envisagé. Avez-vous d'autres options sur la façon de procéder?

Voici un exemple de structure de dossier, que j'ai appelé la "grosse poupée":

Comme vous pouvez le voir, sur le lecteur "D" (Data) il y a le dossier vidéo d'origine, dans celui-ci le dossier "Films", dans celui-ci "Tout ce dont vous avez besoin pour regarder des films" puis de la même manière le dossier dans le dossier . Dans le même temps, de nombreux dossiers ont 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 «matryoshka», il y a un fichier , il se peut que vous ne puissiez pas travailler avec, vous pouvez ... Parfois, le système lui-même ne vous permet pas de créer un dossier ou un fichier qui dépasse le nombre de caractères autorisé, mais parfois pour une raison quelconque ça arrive.

Au début, pour les débutants, j'expliquerai quel est le chemin d'accès au fichier et au dossier. Un chemin est ce qu'on appelle l'adresse sur un ordinateur où se trouve un fichier ou un dossier. Par exemple, un fichier appelé "Mon fichier.txt" se trouve sur le lecteur local D: dans le dossier "Documents". Ensuite, le chemin vers 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 voir, 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 obtenez une fenêtre d'erreur comme celle-ci :

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

Sur le disque "D", j'ai créé un dossier avec un nom court "1" et j'y ai placé un fichier avec 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 le dossier en 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 un tel changement de nom du dossier en un nom long, je ne peux plus supprimer le fichier qui s'y trouve et j'obtiens l'erreur affichée.

Ou voici un autre exemple ... Je maintiens le site Web du Moscow Instrument-Making College, où je travaillais auparavant à plein temps, et j'utilise parfois une copie du site sur mon ordinateur pour tester de nouveaux "goodies" pour le site. Et puis tout d'un coup j'installe quelque chose de mauvais et le site sur l'hébergement meurt ? :) Et donc je vérifie sur mon ordinateur et si tout est en ordre, alors je l'ai déjà configuré sur un vrai site situé sur l'hébergement. Ainsi, une fois que j'ai transféré l'intégralité du site de l'hébergement à moi-même afin de tester une chose, et après avoir fini de travailler, j'ai décidé de supprimer le dossier avec le site de l'ordinateur. Après tout, il pèse environ 6 Go. L'ensemble du site a été supprimé, à 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é à nouveau de supprimer ce fichier avec un nom long et j'ai vu la même erreur que celle que j'ai mentionnée ci-dessus. J'ai essayé de le renommer, ça ne marche pas non plus. Eh bien, j'ai dû réfléchir à la façon de résoudre le problème.

Comment résoudre le problème de 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 le gérer s'il fait tout exactement comme je le montre :

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

    Ensuite, essayez simplement de renommer le dossier contenant le fichier avec un nom long, par exemple, en "1". Revenons à l'un des exemples ci-dessus. Voici un dossier avec un nom long :

    Je renomme le nom de ce dossier en "1" via l'explorateur Windows standard et voici à quoi ressemble le chemin d'accès au fichier :

    Maintenant, vous pouvez travailler en toute sécurité avec le fichier, 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 imbriquée, dans un dossier il y en a un autre, dedans plus, puis plus, puis commencez à renommer à partir du tout premier dossier de cette poupée gigogne. Pas le dernier de la liste, mais le premier !

    Il se peut qu'il y ait un grand nombre de dossiers 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 de l'arborescence générale et à le connecter en tant que disque virtuel. Un disque virtuel est quelque chose qui nous rappelle un disque local ordinaire, mais qui est simplement lié à un dossier spécifique, par exemple, pour interagir rapidement avec lui.

    Disons que vous avez quelque chose comme ce long chemin :

    D:\Vidéo\Mes films\Tout ce dont vous avez besoin pour regarder des films\Logiciel de film\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 très long :)

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

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

    Vous pouvez l'ouvrir via la recherche Windows. Dans la recherche et tapez "Ligne de commande":

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

    subst virtual_disk_letter "path_to_folder"

    Vous pouvez mettre n'importe quelle lettre de lecteur, tant qu'elle n'est pas déjà occupée par l'un des lecteurs locaux. Par exemple, vous avez un lecteur local C et D, ce qui signifie que vous ne pouvez plus appeler le lecteur virtuel de la même lettre. Il peut être appelé, par exemple, la lettre "X", car il est rarement utilisé par quiconque sous Windows.

    Comme chemin d'accès au dossier, vous insérez le chemin d'accès au dossier que vous souhaitez connecter en tant que dossier virtuel. Comme je l'ai dit, dans mon exemple, nous ferons de "Programmes pour regarder des films" 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\Logiciel de film\

    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\Observateurs de films\"

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

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

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

    En comparaison…

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

    D:\Vidéo\Mes films\Tout ce dont vous avez besoin pour regarder des films\Logiciel de film\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 d'accès au dossier final ressemble à ceci :

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

    Sentir 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 puisque le chemin est considérablement raccourci, maintenant vous avez probablement supprimé la limite de caractères dans les noms de fichiers et de dossiers et vous pouvez 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 supprimé à nouveau afin de ne pas être une horreur dans l'Explorateur.

    Pour cela, ouvrez à nouveau l'invite de commande Windows et entrez la commande :

    Subst virtual_disk_letter /d

    Dans mon cas, la lettre de lecteur est "X", donc la commande ressemblera à ceci :

Lorsque j'ai réfléchi 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é, donc je n'ai pas conseillé cette méthode :)) Et la méthode, même si elle marcherait pour quelqu'un, n'est franchement pas cool, car il faut installer un programme supplémentaire sur son ordinateur afin de supprimer un seul fichier ou dossiers avec un nom long...

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

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

Le système d'exploitation Windows nuisible vous empêche-t-il de supprimer un fichier et crie-t-il qu'il a un «chemin source trop long»? Dans cet article, je vais vous dire à quel point il est facile et simple, sans aucun programme, de vaincre ce malheur en raccourcissant le nom du fichier.

Trop long chemin vers la source - pourquoi ?

Je veux expliquer tout de suite pourquoi un tel avertissement système apparaît et qu'il n'est pas possible d'effectuer des actions élémentaires de copie ou de suppression avec 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 avez-vous un nom de fichier ou de dossier court, comme "Vacation Photo" ? Le fait est que le système "stupide" perçoit le chemin d'accès complet au fichier comme son nom. Si votre fichier ou dossier se trouve quelque part trop profondément dans le gestionnaire de fichiers, son nom ressemblera à ceci ...

Ainsi, les symboles du nom vont dans un gang de plus de 255 pièces.

Comment supprimer un fichier ou un dossier non amovible dans ce cas ? 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 montrer par mon propre exemple comment supprimer un fichier avec un nom long, qui, comme le système l'écrit, a un chemin trop long vers la source.

Hier j'ai décidé nettoyer votre ordinateurà partir d'anciennes sauvegardes du site, mais ils ne voulaient pas être supprimés. Comme vous l'avez deviné, il y avait un avertissement concernant le chemin trop long vers la source ...

A partir du tout premier dossier de ce long voyage - rebaptisé quelques morceaux...

… et a essayé à nouveau de se débarrasser du fichier avec le 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 avec un nom long est simplement résolu. Ce n'est pas la seule méthode, bien sûr. Pouvez supprimer avec un logiciel spécial ou via le registre - je viens de montrer la manière manuelle. Pour quelqu'un, cela prendra une minute, et pour quelqu'un, cela prendra une demi-heure - c'est à vous de décider comment raccourcir le nom du fichier et le chemin vers la source est trop long.

Vers de nouveaux conseils utiles et des programmes informatiques intéressants.