Saltar al contenido

Superar las restricciones de longitud máxima de ruta de archivo en Windows

Hemos estado investigando por el mundo online para regalarte la respuesta para tu dilema, si tienes dificultades déjanos tu inquietud y te contestaremos sin falta, porque estamos para ayudarte.

Solución:

Solución 1:

Solo menciono un truco que no veo mencionado aquí todavía.

Tome este archivo por ejemplo:

C:Folder1Really Long PathSuch RecursionSo DeepWowStill GoingI will run out of ideas soonI have organizational problemsObsessive compulsive subdirectory disorderHere is a guid for no good reason936DA01F-9ABD-4d9d-80C7-02AF85C822A8Almost thereTax Returns20132013_tax_return.pdf

Esta ruta de archivo completa tiene 290 caracteres. El shell (Explorador de Windows) y la mayoría de las utilidades de línea de comandos probablemente no le permitirán tocarlo.

Utilizar el subst comando así:

subst X: "C:Folder1Really Long PathSuch RecursionSo DeepWow"

Ahora puede acceder (y eliminar, mover, etc.) el archivo de la siguiente manera:

X:Still GoingI will run out of ideas soonI have organizational problemsObsessive compulsive subdirectory disorderHere is a guid for no good reason936DA01F-9ABD-4d9d-80C7-02AF85C822A8Almost thereTax Returns20132013_tax_return.pdf

Y ahora que el nombre del archivo tiene solo ~ 235 caracteres más o menos, por lo que ya no encontrará los problemas de “El nombre del archivo es demasiado largo”.

En la API de Windows, hay una constante infame conocida como MAX_PATH. MAX_PATH tiene 260 caracteres. El sistema de archivos NTFS admite rutas de archivos de hasta 32.767 caracteres. Y aún puede usar nombres de ruta de 32,767 caracteres de largo accediendo a las versiones Unicode (o “anchas”) de las funciones de la API de Windows, y también agregando el prefijo de la ruta con \?.

MAX_PATH fue grabado en piedra un muy largo Hace tiempo en el mundo de Windows. Creo que tiene algo que ver con los estándares ANSI en ese momento… pero es una de esas cosas que es muy difícil para Microsoft cambiar ahora, ya que ahora tenemos miles de programas y aplicaciones, incluidos algunos escritos por Microsoft, que usan MAX_PATH y fallaría de formas nuevas y extrañas si la constante cambiara repentinamente. (Desbordamientos de búfer, corrupción de montón, etc.)

Solución 2:

Los métodos están ahí, pero hasta que Microsoft vuelva a codificar el widget del navegador de archivos, estamos bastante atrapados con ese viejo problema. Es subóptimo, pero así es como funciona.


Solución 3:

Puede sortear esta limitación utilizando la notación \?C:. Es feo, pero admite longitudes de archivo de hasta 2^15.

http://msdn.microsoft.com/en-us/library/aa365247(v=vs.85).aspx#maxpath


Solución 4:

Microsoft ahora tiene una solución disponible para esto a partir de Windows 10, que se explica en el artículo de MSDN sobre nombres de archivos, rutas y espacios de nombres.

darthcoder ya respondió con detalles sobre el \?C: notación alternativa, pero ahora hay un registro key a HKLMSYSTEMCurrentControlSetControlFileSystem LongPathsEnabled (Type: REG_DWORD) que se puede usar para eliminar las limitaciones de MAX_PATH para un solo sistema. El artículo también menciona la compatibilidad con el control de directivas de grupo en Computer Configuration > Administrative Templates > System > Filesystem > Enable NTFS long paths para la implementación de la organización o de todo el grupo si es necesario.

Si te gusta la idea, puedes dejar una noticia acerca de qué le añadirías a este enunciado.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *