it-swarm.dev

¿Cuál es la ruta de archivo más larga que Windows puede manejar?

¿Cuál es la ruta de archivo más larga que Windows puede manejar?

56
Ron Tuffin

Longitud máxima de la ruta (de MSDN)

En la API de Windows (con algunas excepciones analizadas en los párrafos siguientes), la longitud máxima de una ruta es MAX_PATH, que se define como 260 caracteres . Una ruta local se estructura en el siguiente orden: letra de unidad, dos puntos, barra diagonal inversa, componentes separados por barras diagonales inversas y un carácter nulo de terminación. Por ejemplo, la ruta máxima en la unidad D es "D:\<alguna cadena de ruta de 256 caracteres> <NUL>" donde "<NUL>" representa el carácter nulo de terminación invisible para la página de códigos del sistema actual. (Los caracteres <> se utilizan aquí para mayor claridad visual y no pueden formar parte de una cadena de ruta válida).

47
Adam Matan

Ruta del archivo XP - 250 caracteres

Ruta del archivo de Vista - 260 caracteres

La ruta más larga en una instalación limpia de Windows XP tiene 152 caracteres.

La ruta más larga en una instalación semi-limpia de Windows Vista es de 195 caracteres:

Windows XP permite nombres de archivos de hasta 255 caracteres de longitud

Windows Vista permite nombres de archivo aún más largos que contienen hasta 260 caracteres.

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

15
joe

La constante de Windows MAX_PATH es igual a 260 como dicen otras respuestas, sin embargo, la ruta más larga real es 32767.

Vea aquí .

32k es mientras se usa UNICODE, pero ahora debemos usarlo, por lo que también debemos usar dicha longitud máxima de ruta.

Además, puede echar un vistazo a mi respuesta en SO que explica algunas cosas más detalladas sobre la longitud máxima de la ruta.

8
ST3

El límite "clásico" es 260 caracteres: drive letter + :\ + 255 characters of filename + \ (o para redondear) + null terminator como se dice en las otras respuestas

Sin embargo, el límite interno real es 32767 caracteres que se pueden lograr al agregar \\?\ para obtener una ruta completa

La API de Windows tiene muchas funciones que también tienen versiones de Unicode para permitir una ruta de longitud extendida para una longitud de ruta total máxima de 32.767 caracteres. Este tipo de ruta se compone de componentes separados por barras invertidas, cada uno hasta el valor devuelto en el parámetro lpMaximumComponentLength de la función GetVolumeInformation (este valor suele ser de 255 caracteres). Para especificar una ruta de longitud extendida, use el prefijo "\\?\". Por ejemplo, "\\?\D:\very long path".

Si, por algún motivo, no se pueden utilizar las rutas completas, se puede acceder a los directorios más profundos montando una letra de unidad con subst / diskpart o creando una unión unión / enlace simbólico para acortar el camino

Desde Windows 10, el límite MAX_PATH también se ha eliminado aunque no de forma predeterminada

A partir de Windows 10, versión 1607, las limitaciones de MAX_PATH se han eliminado de las funciones comunes de archivos y directorios de Win32. Sin embargo, debe optar por el nuevo comportamiento.

https://docs.Microsoft.com/en-us/windows/desktop/FileIO/naming-a-file

1
phuclv