58 votes

Quel est le chemin de fichier le plus long que Windows peut gérer ?

Quel est le chemin de fichier le plus long que Windows peut gérer ?

50voto

Andy Griffin Points 21

Longueur maximale du chemin (de MSDN)

Dans l'API Windows (avec quelques exceptions discutées dans les paragraphes suivants), la longueur maximum d'un chemin est de MAX_PATH, qui est défini comme étant de 260 caractères . Un chemin d'accès local est structuré dans l'ordre suivant : lettre du lecteur, deux points, barre oblique inversée, composants séparés par des barres obliques inversées et un caractère nul final. Par exemple, le chemin d'accès maximal sur le lecteur D est "D:\<quelque chaîne de chemin d'accès de 256 caractères><NUL>" où "<NUL>" représente le caractère nul de terminaison invisible pour la page de code système actuelle. (Les caractères < > sont utilisés ici pour des raisons de clarté visuelle et ne peuvent pas faire partie d'une chaîne de chemin d'accès valide).

14voto

Chemin du fichier XP - 250 caractères

Chemin d'accès au fichier Vista - 260 caractères

Le chemin le plus long sur une installation propre 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 fichiers 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

8voto

insipid Points 1510

Constante de Windows MAX_PATH est égal à 260 comme le disent les autres réponses, cependant, le chemin le plus long réel est de 32767.

参照 aquí .

32k c'est en utilisant UNICODE, mais maintenant nous devons l'utiliser, donc nous devrions aussi utiliser cette longueur maximale de chemin.

Vous pouvez également jeter un coup d'œil à ma réponse dans SO qui explique plus en détail certaines choses sur la longueur maximale des chemins.

8voto

phuclv Points 22397

En "classique" limite est 260 des personnages : drive letter + :\ + 255 characters of filename + \ (ou pour les arrondis) + null terminator comme indiqué dans les autres réponses

Cependant, la véritable limite interne est 32767 caractères, ce qui peut être obtenu en ajoutant \\?\ pour obtenir un chemin pleinement qualifié

L'API Windows dispose de nombreuses fonctions qui ont également des versions Unicode pour permettre un chemin de longueur étendue pour une longueur totale maximale de 32 767 caractères. Ce type de chemin est composé d'éléments séparés par des barres obliques inverses, chacun pouvant atteindre la valeur renvoyée dans la fonction lpMaximumComponentLength du paramètre GetVolumeInformation (cette valeur est généralement de 255 caractères). Pour spécifier un chemin d'accès de longueur étendue, utilisez la fonction "\\?\" préfixe. Par exemple, "\\?\D:\very long path" .

Si, pour certaines raisons, les chemins entièrement qualifiés ne peuvent pas être utilisés, il est possible d'accéder à des répertoires plus profonds en les montant sur une lettre de lecteur à l'aide de la commande subst / diskpart ou en créant un jonction / lien symbolique pour raccourcir le chemin

Depuis la version 1607 de Windows 10, la MAX_PATH La limite a également été supprimée, mais pas par défaut

À partir de Windows 10, version 1607, MAX_PATH Les limitations ont été supprimées des fonctions courantes de fichiers et de répertoires de Win32. Cependant, vous devez opter pour le nouveau comportement.

https://docs.microsoft.com/en-us/Windows/desktop/FileIO/naming-a-file

Notez que La réponse de Joe est complètement fausse . La longueur maximale (longue) des noms de fichiers a toujours été de 255 caractères et de 1 000 caractères. MAX_PATH a toujours été de 260

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X