web-dev-qa-db-fra.com

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?

56
Ron Tuffin

Longueur maximale du chemin d'accès (à 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 comme étant 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.)

47
Adam Matan

Chemin du fichier XP - 250 caractères

Chemin du fichier Vista - 260 caractères

Le plus long chemin 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 d'une longueur maximale de 255 caractères

Windows Vista autorise des noms de fichiers encore plus longs contenant jusqu'à 260 caractères.

http://www.codinghorror.com/blog/archives/000729.html

15
joe

La constante Windows MAX_PATH est égale à 260, comme le dit 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.

8
ST3

La limite "classique" est la suivante 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 32767 caractères, ce qui peut être obtenu en ajoutant \\?\ pour obtenir un chemin qualifié complet

L'API Windows comporte 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 paramètre lpMaximumComponentLength de la fonction GetVolumeInformation (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 pleinement qualifiés ne peuvent pas être utilisés, des répertoires plus profonds sont accessibles en montant sur une lettre de lecteur avec subst / diskpart ou en créant une jonction / pour raccourcir le chemin

Depuis Windows 10, la limite MAX_PATH a également été supprimée, mais pas par défaut.

À partir de Windows 10, version 1607, les limitations de MAX_PATH 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

1
phuclv