Y a-t-il des caractères cachés (environ 14) dans le chemin et/ou le nom de fichier dans l'Explorateur de fichiers ?

J’utilise Windows 11 Pro et mon lecteur D est un SSD. J’ai lu que l’Explorateur de fichiers a une limite de chemin + nom de fichier d’environ 260 caractères.

Personnellement, je ne peux pas le vérifier. Voici le problème :

Voici l’emplacement où je crée un fichier .txt (18 caractères) en utilisant Clic droit > Nouveau > Document texte :

D:\Files\MISC\ABCD

Et voici le nom du fichier .txt que j’essaie de créer (228 caractères) :

STARTmjXoUVCpeL8ND9YTaZGxJhqDbEMRrlsoQvyTWNzF76XcPADgKLDtBf3quRWnUke4JvYZpMHgTrNxyJQVCLazmKoUfDGWiRM8ptv6HqXyJAopDcwv9LdKXNgB27RsVZfqkTAYmhCDzEjolwNEsXVFq2gRUbKdyJzHaWTfMsnvcRqpDgtXKYZNAuRbtmzzzJQVCLazmKoUfGWiRM8ptvDzENDHERE.txt

Le total de caractères visibles est maintenant de 246. Je ne peux plus ajouter de caractères au nom de fichier. Je me demande donc si la limite est bien de 260. Ou peut-être y a-t-il des caractères cachés que je ne vois pas dans l’Explorateur de fichiers. Comme 14 caractères cachés.

J’ai lu les réponses à de nombreuses questions pertinentes ici, mais je n’ai trouvé aucune réponse mentionnant ce point. Les réponses portaient davantage sur les limites, la résolution du problème de limite, les contournements et la compréhension de la raison de cette limite sous Windows.

Cependant, j’ai trouvé deux questions intéressantes correspondant à mes préoccupations :

Cette question semble présenter le même scénario que le mien. Le chemin + nom de fichier pour cet utilisateur totalise environ 245 caractères. Ce qui est très proche de mon cas. Mais la préoccupation de l’auteur n’est pas exactement la même que la mienne, donc je n’obtiens pas non plus la réponse là-bas.

Mais ensuite, cette question a effectivement réussi à créer un nom de fichier dans un chemin dont le total de caractères visibles est bien proche de 260. Je ne suis pas en mesure de créer des noms aussi longs.

Les deux questions que j’ai partagées ci-dessus m’ont donc encore plus embrouillé. Je ne comprends vraiment pas pourquoi il y a cette différence.

Y a-t-il effectivement environ 14 caractères cachés ? Si non, pourquoi ne suis-je pas en mesure d’ajouter 14 caractères supplémentaires comme l’auteur de l’autre question l’a apparemment fait ?

Il s’agit d’une limitation appliquée par l’Explorateur lui-même, et non par Windows. La même limitation existe également sous Windows 10.

Sans accès au code source, toute tentative de réponse à cette question relèverait de la pure spéculation.

Mon hypothèse était que cela avait un rapport avec le fait que l’Explorateur ajoute " - Copy" (ou " - Copie") lorsqu’une copie d’un fichier est créée dans le même répertoire que l’original. Si une copie d’une copie est créée, le suffixe devient " - Copy (2)", et ainsi de suite. Je pensais que les quatorze caractères restants étaient réservés pour ce suffixe – vous savez, certaines variantes localisées peuvent être assez longues, et si cela prend en charge plus de cent copies, cela signifie que le chiffre pourrait occuper trois caractères ou plus.

Après quelques tests, il s’avère que ce n’est pas ce qui se passe. J’ai commencé par créer un répertoire contenant 220 caractères (221 en comptant le backslash final) – de cette façon, nous pouvons effectuer nos tests avec des noms de fichiers relativement courts. Ensuite, j’ai créé un fichier avec le nom le plus long que l’Explorateur me permettait :

1234567890123456789012.txt – total : 247 caractères.

(Même chose que vous, mais vous avez fait une erreur d’un : le backslash entre le répertoire et le fichier devrait compter comme un caractère.)

Si je fais Ctrl+C, Ctrl+V, j’obtiens :

12345678901234567 - Copy.txt – total : 249 caractères.

En faisant une autre copie, j’obtiens :

12345678901234567 - Copy (2).txt – total : 253 caractères.

Remarquez comment le nom de fichier est tronqué. En copiant le fichier encore et encore jusqu’à atteindre le compteur de cent, on obtient effectivement :

12345678901234567 - Copy (100).txt – total : 255 caractères.

(et non, je ne vais pas continuer jusqu’à mille, dix mille et cent mille – la vie est trop courte pour cela).

Comme " - Copy" a une longueur différente dans d’autres langues que l’anglais, essayons avec le grec. Il apparaît que le nom est encore plus tronqué lorsque le suffixe est plus long :

123456789012 - Αντιγραφή (2).txt – total : 253 caractères.

Je peux revenir sur une copie et la renommer, ce qui donne :

12345678901234567890123 - Copy (2).txt – total : 259 caractères.

123456789012345678 - Αντιγραφή (2).txt (même chose).

1234567890123456789012 - Copy (10).txt (même chose).

C’est très proche de la limite de 260 caractères. Je suppose que les développeurs ont gardé le caractère restant pour l’octet nul final. Maintenant, lorsque j’ai augmenté le chemin complet du répertoire à 240 caractères (241 en comptant le séparateur), j’ai pu créer le fichier suivant à l’intérieur :

12345678901234.txt – total : 259 caractères.

Et ensuite, j’ai également pu le copier, ce qui a donné :

12345678901234 - Copy.txt – total : 266 (!) caractères.

12345678901234 - Copy (2).txt – total : 270 caractères.

Il ne semblait y avoir aucun problème particulier avec ce fichier. Je pouvais l’ouvrir, le renommer et le supprimer sans problème, ce qui pourrait indiquer que la limite réelle est en grande partie inutile dans les versions modernes de Windows, car l’Explorateur semble utiliser les chemins longs en interne de toute façon.

Cela a probablement été implémenté il y a longtemps, comme une solution rapide et pratique pour gérer la plupart des cas de chemins longs à l’époque où ceux-ci n’étaient pas pris en charge par l’Explorateur. Pas une mauvaise tentative, après tout, étant donné qu’il n’existe aucun moyen de gérer tous les cas de toute façon. Un utilisateur peut toujours renommer un répertoire parent pour qu’il soit plus long, atteignant ainsi la limite de 260 caractères pour l’un de ses enfants.

Maintenant, il y a une chose qui me préoccupe : je ne parle pas un mot de grec. Comment puis-je remettre l’interface Windows en anglais ?! Ce serait une bonne question à poser sur SuperUser !