¿Windows 7 ha corregido el límite de ruta de archivo de 255 caracteres?

92

Según tengo entendido, la limitación de 255 caracteres en una ruta de archivo es una limitación de Windows. ¿Cuál es el motivo de esto? Si es así, ¿se ha resuelto esto en Windows 7?

En nuestras prácticas de integración continua, a menudo tenemos estructuras de proyectos profundamente anidadas y sería extremadamente útil poder ir más allá de los 255 caracteres. Ahora mismo estamos algo obligados a estructurar nuestros proyectos de tal manera que no golpeen este techo artificial.

El mate
fuente
3
@DavidHeffernan Pero ese 260 incluye el carácter nulo al final y la `C: \` al principio, por lo que solo se pueden usar 255 caracteres.
Aaron Dufour
2
@DavidHeffernan Estaba equivocado. Microsoft a menudo cita la longitud como 256, que es lo que obtiene cuando resta correctamente, en lugar de 260, que es técnicamente el límite.
Aaron Dufour
5
Este problema me enfurece. Todavía está presente en Windows 8.1. Parece que no puedo mover mis archivos, a pesar de que ALGUNA MANERA el archivo se creó en primer lugar. Si encuentra alguna forma de crear archivos con más de 255 nombres de ruta de archivo, puede estropear totalmente la máquina de Windows de alguien.
Automatico
Según Jeremy Kuhne, el problema se está resolviendo y es posible que pronto tenga una solución. Mira este video. youtube.com/watch?v=ZppqEMegCAA
J Edward Ellis
La pregunta es sobre Windows 7, pero de todos modos, Windows 10 tiene una opción para activar rutas largas para algunas aplicaciones. Para obtener más detalles, consulte esta respuesta: stackoverflow.com/questions/27680647/…
quasoft

Respuestas:

44

Ver http://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx

Esto explica que las versiones Unicode de las API de Windows tienen límites más altos y cómo habilitarlos.

Drew Hoskins
fuente
14
Pero una advertencia: hay un montón de código (principalmente utilidades del sistema de terceros y similares) que no funciona bien con rutas más largas. Es posible que tenga problemas con eso si comienza a usar rutas más largas.
Reinstate Monica Larry Osterman
2
¿Es correcto este artículo? Hice una prueba simple con el Explorador de Windows y el Símbolo del sistema de Windows en Windows 7 y no puedo crear rutas de archivo con más de 260 caracteres. ¿No ha actualizado Microsoft estas aplicaciones para utilizar las versiones Unicode de las API de Windows?
Templario
7
Desafortunadamente, el Explorador de Windows en Windows 7 x64 todavía está sujeto a este límite de ruta. Esto da la impresión de que todo el sistema operativo no ha superado este límite, cuando en realidad es solo el Explorador de Windows el que no se ha actualizado para trabajar con rutas más largas. Es posible que un administrador de archivos de terceros que utilice las últimas API pueda solucionar esto. En última instancia, si un programa parece alcanzar el límite de ruta dependerá de si ese programa utiliza las API más recientes en Windows.
user1445967
2
No se trata de API "más nuevas" o "más antiguas". Solo obtiene soporte de ruta larga si lo solicita explícitamente, y Explorer no lo hace, presumiblemente por la razón obvia: compatibilidad con aplicaciones de terceros existentes.
Harry Johnston
9
-1 - Un enlace a una solución potencial siempre es bienvenido, pero agregue contexto alrededor del enlace para que sus compañeros usuarios tengan una idea de qué es y por qué está allí. Siempre cite la parte más relevante de un enlace importante, en caso de que el sitio de destino sea inaccesible o se desconecte permanentemente. meta.stackoverflow.com/tags/link-only-answers/info
Aaron Hall
20

Puede sortear ese límite utilizando subst si es necesario.

Joshua
fuente
1
O robocopy que está integrado en Windows, según esta respuesta, stackoverflow.com/questions/29865863/…
KAE
5
Debe demostrar cómo y proporcionar un enlace a la documentación relevante. -1
Aaron Hall
3
Aunque voté a favor, estoy de acuerdo en que un ejemplo sería útil: subst E: D:\TESTDATA\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1 eso me llevó por un camino que tenía 500 caracteres de profundidad. El motivo de los ~ 1 es la forma en que Explorer formateó la ruta.
Adam Marcionek
1
Una solución similar sería usar uniones , ya sea a través de una extensión de shell o mediante mklink Ejemplo:mklink /J C:\newdir C:\some\really\long\path\
Charles Grunwald
14

Las soluciones provisionales no son soluciones, por lo tanto, la respuesta es "No".

Aún buscando soluciones alternativas, aquí hay posibles soluciones: http://support.code42.com/CrashPlan/Latest/Troubleshooting/Windows_File_Paths_Longer_Than_255_Characters

usuario1767754
fuente
1
Los elementos centrales de Windows, incluidos PowerShell, Windows Explorer Shell y utilidades cmd como del, aún no pueden manejar rutas que superen los 250 caracteres, y ninguna solución soluciona el hecho de que las tecnologías centrales de Microsoft no manejan rutas largas, a partir de 2016. La respuesta corta aquí es hasta que Microsoft ponga en marcha sus traseros colectivos, hay poco que podamos hacer.
Warren P