Pourquoi ne pas dépasser 260 caractères pour des chemins de dossier sous Windows ?

Parce que Windows est vieux et a des casseroles. Fin de l’article.
Bon, d’accord, détaillons un peu.
Historiquement, l’API Win32 impose une limite de 260 caractères pour les chemins de fichiers. Si vous dépassez cette limite, Windows vous regarde droit dans les yeux et vous balance un magnifique « Erreur : chemin trop long » comme si c’était de votre faute.
Pourquoi cette limite absurde ?
Elle vient des temps anciens, quand Windows 95 régnait en maître et que personne ne pensait que des dossiers comme C:\Utilisateurs\Jean-Pierre\Documents\Projets\Dossier_Super_Long\Encore_Un_Sous_Dossier\Version_Finalement_Pas_Si_Finale\Rapport_Mega_Ultra_Hyper_Important.docx
allaient devenir la norme.
Mais… Microsoft a corrigé ça, non ?
Oui, mais… non. Depuis Windows 10 (1607), une option permet de dépasser cette limite en activant LongPathsEnabled
dans le registre. Mais :
- Ce n’est pas activé par défaut.
- Certains vieux logiciels (et même Explorateur Windows) peuvent encore buguer avec ces longs chemins.
- Certains protocoles réseau et systèmes de fichiers (coucou SMB et FAT32) continuent de bloquer les chemins trop longs.
Comment éviter ça ?
- Rester en dessous de 260 caractères
- (oui, c’est nul, mais c’est sûr).
- Utiliser des noms de fichiers et dossiers plus courts
- (évitez les « Projet_Super_Important_Version_Finale_Définitive_Vraiment_Final.docx »).
- Utiliser des chemins UNC (
\\?\C:\très\long\chemin
)- pour contourner la limite dans certaines applications.
- Activer les longs chemins via le registre et espérer que vos logiciels suivent:
Ouvrir l'Éditeur du Registre (regedit) Aller à HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem Trouver la clé LongPathsEnabled et mettre sa valeur à 1 et Redémarrer le PC
- Utiliser
robocopy
ou7-Zip
- qui gèrent mieux ces cas que l’Explorateur.
Bref, Windows traîne ce problème depuis des années, et même si des solutions existent, le message « Chemin trop long » risque encore de hanter vos nuits.