Mentionnons juste un truc que je ne vois pas encore mentionné ici.
Prenez ce fichier par exemple:
C:\Folder1\Really Long Path\Such Recursion\So Deep\Wow\Still Going\I will run out of ideas soon\I have organizational problems\Obsessive compulsive subdirectory disorder\Here is a guid for no good reason\936DA01F-9ABD-4d9d-80C7-02AF85C822A8\Almost there\Tax Returns\2013\2013_tax_return.pdf
Ce chemin d'accès complet contient 290 caractères. Le shell (Explorateur Windows) et la plupart des utilitaires de ligne de commande ne vous permettront probablement pas de le toucher.
Utilisez la subst
commande comme suit:
subst X: "C:\Folder1\Really Long Path\Such Recursion\So Deep\Wow"
Vous pouvez maintenant accéder (et supprimer, déplacer, etc.) au fichier de la manière suivante:
X:\Still Going\I will run out of ideas soon\I have organizational problems\Obsessive compulsive subdirectory disorder\Here is a guid for no good reason\936DA01F-9ABD-4d9d-80C7-02AF85C822A8\Almost there\Tax Returns\2013\2013_tax_return.pdf
Et maintenant, ce nom de fichier ne contient que ~ 235 caractères environ, vous ne rencontrerez donc plus le problème "Le nom du fichier est trop long".
Dans l'API Windows, il existe une constante infâme appelée MAX_PATH
. MAX_PATH contient 260 caractères. Le système de fichiers NTFS prend en charge les chemins de fichiers comportant jusqu'à 32 767 caractères. Et vous pouvez toujours utiliser des noms de chemin longs de 32 767 caractères en accédant aux versions Unicode (ou "large") des fonctions de l'API Windows, ainsi qu'en préfixant le chemin \\?\
.
MAX_PATH
était gravé dans la pierre il y a très longtemps dans le monde Windows. Je pense que cela a quelque chose à voir avec les normes ANSI à l’époque ... mais c’est une de ces choses qu’il est très difficile pour Microsoft de changer maintenant, car nous avons maintenant des milliers de programmes et d’applications, y compris celles écrites par Microsoft elles-mêmes. MAX_PATH
et échouerait de nouvelles manières étranges si la constante était changée soudainement. (Débordement de tampon, corruption de tas, etc.)