Windows : impossible d’ouvrir des fichiers avec un nom trop long

Récemment, plusieurs utilisateurs ont signalé des difficultés à ouvrir des documents Microsoft Word directement depuis nos lecteurs réseau mappés. Il faut savoir que les utilisateurs sont des êtres facétieux qui aiment bien faire des blagues à la DSI. Comme vous le savez sûrement déjà, il ne faut jamais faire confiance aux utilisateurs. Bon ok, j’ai peut-être récupéré ça de mon côté développeur et vous voyez où je veux en venir. Cependant, il faut les écouter attentivement lorsque ils essaient de vous expliquer leur problème pour récupérer le maximum d’information. Le diable se joue dans les détails qui peuvent facilement débloquer la situation.

Après investigation, le symptôme pointait vers une cause fréquente mais parfois négligée : la longueur excessive des chemins d’accès aux fichiers. En effet, Word, comme d’autres applications, possède une limite technique quant à la longueur des chemins qu’il peut gérer. Cette situation est souvent le résultat d’une arborescence de dossiers trop profonde, avec de nombreux niveaux d’imbrication, ce qui est une mauvaise pratique en matière de gestion de fichiers.

Sur la suite Microsoft 365, l’application, que ce soit Word, Excel ou par PowerPoint, va tenter d’ouvrir le fichier puis le logiciel va directement se fermer sans plus d’explications. Sur les suites Office un peu plus anciennes comme Office 2016, Office 2019, Office 2021 ou encore Office 2024 avant M365, vous pouvez avoir un message d’erreur : Nous ne pouvons pas ouvrir le fichier, car le chemin d’accès au fichier est supérieur à 259 maximum. Essayez de raccourcir le chemin d’accès ou le nom de fichier ou encore Word ne peut pas ouvrir ou enregistrer ce fichier car le nom du chemin est trop long. Quand vous avez un message d’erreur, il est parfois différent mais le constat est le même. Vous ne pouvez pas ouvrir votre fichier Microsoft et en l’état il semble inutilisable. Rassurez-vous c’est facile à résoudre.

Dans certains cas, en examinant les propriétés des fichiers problématiques, on peut observer des chemins commençant par le préfixe \\?\, par exemple :

\\?\P:\TresLongDossier\EncoreUnSousDossier\EtUnAutre\MonDocumentFinal.docx

Ce préfixe \\?\ est une notation spéciale utilisée par les API Windows pour désigner un chemin long, permettant ainsi de contourner la limite traditionnelle de 260 caractères (MAX_PATH). Si le système d’exploitation peut « comprendre » ces chemins étendus, certaines applications, notamment celles qui n’ont pas été mises à jour pour gérer ces chemins longs de manière native, peuvent encore rencontrer des erreurs. Les applications de Microsoft 365 sont mises à jour, mais impossible de dépasser cette limite technique de 260 caractères. C’est en dur. Il faut savoir que le nom d’un fichier, c’est l’ensemble du chemin depuis la racine. Si il y a de nombreux sous dossier, c’est rapide d’atteindre cette limite. Sauf quand l’utilisateur met carrément un paragraphe dans le nom du fichier …

Identifier les fichiers avec un chemin trop long pour s’ouvrir dans Microsoft 365 Copilot

La stratégie est la suivante. Trouver avec PowerShell les noms de fichier trop long pour s’ouvrir avec Microsoft 365 Copilot anciennement Office 365. C’est le même produit qui a un peu évolué. PowerShell nous offre des moyens efficaces pour identifier précisément ces fichiers dont le chemin complet dépasse un certain seuil. Commençons par une commande pour lister les fichiers problématiques dans un répertoire spécifique, disons X:\ArchivesProjets\SectionMarketing\CampagnesAnnuelles. Vous adapterez ce chemin à votre propre structure.

Get-ChildItem -Path "X:\ArchivesProjets\SectionMarketing\CampagnesAnnuelles" -Recurse -File -Force | Where-Object { ($_.FullName.Length -gt 256) } | Select-Object FullName, @{Name="Length";Expression={$_.FullName.Length}} | Sort-Object Length -Descending

Cette commande va explorer récursivement (-Recurse) tous les fichiers (-File), y compris ceux qui pourraient être cachés (-Force), à partir du chemin indiqué. Elle filtre ensuite (Where-Object) pour ne garder que ceux dont la longueur du nom complet (FullName.Length) est strictement supérieure à 256 caractères. Les résultats sont ensuite formatés pour afficher le nom complet et sa longueur (Select-Object), puis triés (Sort-Object) pour que les chemins les plus longs apparaissent en premier.

Afficher la liste dans la console, c’est bien, mais pour une analyse plus poussée ou pour partager ces informations, un export CSV est souvent préférable. Modifions la commande précédente pour enregistrer le résultat dans un fichier rapport_chemins_longs.csv situé dans C:\TempTechnique. Pour cet exemple, nous allons scanner l’intégralité d’un lecteur, disons Y:\ArchivesEntreprise\.

Get-ChildItem -Path "Y:\ArchivesEntreprise\" -Recurse -File -Force | Where-Object { ($_.FullName.Length -gt 256) } | Select-Object FullName, @{Name="Length";Expression={$_.FullName.Length}} | Sort-Object Length -Descending | Export-Csv -Path "C:\TempTechnique\rapport_chemins_longs.csv" -NoTypeInformation -Encoding UTF8

L’ajout de Export-Csv avec le paramètre -Path permet de spécifier le fichier de destination. L’option -NoTypeInformation supprime la ligne d’en-tête #TYPE du CSV, le rendant plus net pour une utilisation ultérieure. L’utilisation de -Encoding UTF8 est cruciale pour assurer la bonne prise en charge des caractères spéciaux (accents, etc.) qui peuvent se trouver dans les noms de fichiers ou de dossiers.

Si vous préférez que le fichier CSV soit généré directement dans le répertoire à partir duquel vous lancez la commande PowerShell, la variable $PWD (Present Working Directory) est votre amie.

Get-ChildItem -Path "Z:\DataGlobales\" -Recurse -File -Force | Where-Object { ($_.FullName.Length -gt 256) } | Select-Object FullName, @{Name="Length";Expression={$_.FullName.Length}} | Sort-Object Length -Descending | Export-Csv -Path "$PWD\InventaireCheminsLongs_Local.csv" -NoTypeInformation -Encoding UTF8

Une fois ce rapport CSV généré, vous pouvez l’ouvrir avec un tableur comme Excel. Cela vous donnera une vision claire des fichiers concernés et vous aidera à planifier les actions correctives, qui peuvent inclure le renommage de dossiers, la réorganisation de l’arborescence pour réduire la profondeur, ou la communication auprès des utilisateurs sur les bonnes pratiques de nommage et de structuration des données.

Laisser un commentaire