¿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?
Respuestas:
Longitud máxima de ruta (desde MSDN)
En la API de Windows (con algunas excepciones discutidas en los siguientes párrafos), la longitud máxima para 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: \ <una 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 usan aquí para mayor claridad visual y no pueden ser parte de una cadena de ruta válida).
Ruta del archivo XP: 250 caracteres
Ruta del archivo Vista - 260 caracteres
La ruta más larga en una instalación limpia de Windows XP es de 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 archivo de hasta 255 caracteres de longitud
Windows Vista permite nombres de archivo aún más largos que contienen hasta 260 caracteres.
La constante de Windows MAX_PATH
es igual a 260 como dicen otras respuestas, sin embargo, la ruta más larga real es 32767.
Ver aquí .
32k es mientras se usa UNICODE, pero ahora debemos usarlo, por lo que también deberíamos usar esa longitud máxima de ruta.
Además, puede consultar mi respuesta en SO, que explica algunas cosas más detalladas sobre la longitud máxima de la ruta.
El límite "clásico" es de 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 de 32767 caracteres que se pueden lograr al agregar \\?\
para obtener una ruta totalmente calificada
La API de Windows tiene muchas funciones que también tienen versiones 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
lpMaximumComponentLength
parámetro de laGetVolumeInformation
función (este valor suele ser 255 caracteres). Para especificar una ruta de longitud extendida, use el"\\?\"
prefijo. Por ejemplo,"\\?\D:\very long path"
.
Si, por alguna razón, no se pueden usar rutas totalmente calificadas, se puede acceder a directorios más profundos montando en una letra de unidad con subst
/ diskpart
o creando una unión / enlace simbólico para acortar la ruta
Desde Windows 10, el MAX_PATH
límite también se ha eliminado, aunque no de forma predeterminada
A partir de Windows 10, versión 1607, las
MAX_PATH
limitaciones 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