En Windows, la longitud total predeterminada de la ruta no debe exceder los 260 caracteres ( drive
+ :\
+ 255 characters of filename
+ null terminator
+ probablemente para el final \
en caso de que la ruta sea un directorio o simplemente para redondear). Fue una reliquia de la era de los 8.3 nombres de DOS, donde una ruta de 260 caracteres es una ruta realmente profunda.
Es posible que su ruta a la carpeta ya sea muy larga, por lo que la parte restante de su nombre de archivo es solo 129. Si desea una ruta más larga, tiene varias soluciones:
- use nombres de archivo completos con
\\?\
prefijo, de esta manera puede usar un máximo de 32767 caracteres en la ruta ‡
- cambiar el nombre de las carpetas en la ruta para que sea más corto
- monte la carpeta que contiene el archivo en un carácter de unidad con
subst
/ mountvol
/ diskmgmt.msc . De esta manera, puede utilizar el máximo de 255 caracteres para su nombre de archivo
- crear un enlace / enlace simbólico a otra carpeta menos profunda en la ruta. No puede crear enlaces a letras de unidad, por lo tanto, no puede obtener nombres de archivo siempre que haya utilizado el método de montaje
Desde Windows 10 hay otra opción eliminando la limitación de MAX_PATH § . Puede habilitarlo configurando HKLM\SYSTEM\CurrentControlSet\Control\FileSystem LongPathsEnabled
en el registro o configurando Configuración del equipo> Plantillas administrativas> Sistema> Sistema de archivos> Habilitar rutas largas NTFS en la política de grupo
Lee mas:
‡ La ruta máxima de 32,767 caracteres es aproximada, porque el sistema \\?\
puede expandir el prefijo a una cadena más larga en tiempo de ejecución, y esta expansión se aplica a la longitud total.
§ 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.