Quel est le plus long chemin de fichier que Windows peut gérer?
Quel est le plus long chemin de fichier que Windows peut gérer?
Réponses:
Longueur maximale du chemin (à partir de MSDN)
Dans l'API Windows (à quelques exceptions près décrites dans les paragraphes suivants), la longueur maximale d'un chemin est MAX_PATH, définie à 260 caractères . Un chemin local est structuré dans l'ordre suivant: lettre de lecteur, deux points, barre oblique inverse, composants séparés par des barres obliques inverses et un caractère nul de fin. Par exemple, le chemin maximal sur le lecteur D est "D: \ <une chaîne de chemin de 256 caractères> <NUL>", où "<NUL>" représente le caractère nul de fin invisible pour la page de codes système actuelle. (Les caractères <> sont utilisés ici pour la clarté visuelle et ne peuvent pas faire partie d'une chaîne de chemin valide.)
Chemin du fichier XP - 250 caractères
Chemin du fichier Vista - 260 caractères
Le chemin le plus long sur une nouvelle installation de Windows XP est de 152 caractères.
Le chemin le plus long sur une installation semi-propre de Windows Vista est de 195 caractères:
Windows XP autorise les noms de fichier jusqu'à 255 caractères
Windows Vista autorise des noms de fichiers encore plus longs contenant jusqu'à 260 caractères.
La constante Windows MAX_PATH
est égale à 260 comme l’indiquent d’autres réponses. Cependant, le plus long chemin réel est 32767.
Voir ici .
32k est en utilisant UNICODE, mais maintenant nous devons l’utiliser, nous devrions donc aussi utiliser cette longueur de chemin maximale.
Vous pouvez également consulter ma réponse dans SO, qui explique certaines choses plus détaillées sur la longueur maximale du chemin.
La limite "classique" est de 260 caractères: drive letter
+ :\
+ 255 characters of filename
+ \
(ou pour arrondir) + null terminator
comme indiqué dans les autres réponses
Cependant, la limite interne réelle est de 32 767 caractères, ce qui peut être obtenu en ajoutant \\?\
un chemin qualifié complet.
L'API Windows possède de nombreuses fonctions qui comportent également des versions Unicode permettant un chemin d'accès étendu pour une longueur totale maximale de 32 767 caractères. Ce type de chemin est composé de composants séparés par des barres obliques inverses, chacune jusqu’à la valeur renvoyée dans le
lpMaximumComponentLength
paramètre de laGetVolumeInformation
fonction (cette valeur est généralement de 255 caractères). Pour spécifier un chemin de longueur étendue, utilisez le"\\?\"
préfixe. Par exemple,"\\?\D:\very long path"
.
Si, pour une raison quelconque, les chemins d'accès entièrement qualifiés ne peuvent pas être utilisés, vous pouvez accéder à des répertoires plus profonds en les fixant à une lettre de lecteur avec subst
/ diskpart
ou en créant une jonction / un lien symbolique pour raccourcir le chemin.
Depuis Windows 10, la MAX_PATH
limite a également été supprimée, mais pas par défaut.
À partir de Windows 10, version 1607, les
MAX_PATH
limitations ont été supprimées des fonctions de fichier et de répertoire Win32 courantes. Cependant, vous devez accepter le nouveau comportement.https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file