que archives windows winapi path ntfs unc

windows - que - system32 archives



¿Las rutas de longitud extendida son seguras de usar? (3)

Acabo de tropezar con este artículo en MSDN que dice que una ruta puede tener una terminación de 259 caracteres + NUL, pero si la prefiges con "//? /" WinAPI te permite usar el

longitud máxima de ruta total de 32.767 caracteres.

Ansioso por ver cómo funciona, intenté usar ese prefijo de Explorer (en XP SP3) pero no funciona (en ninguna ruta). Si coloca //?/C:/Path/to/an/existing.file en la barra del explorador, dará el error "archivo no encontrado".

Entonces estoy confundido ¿Puedo codificar algo para Windows (no antiguo) que hace un uso completo del tamaño de ruta mencionado en NTFS? ¿Por qué Explorer no lo usa?


Antes de que alguien me diga RTFM ...

Tenga en cuenta que estos ejemplos están destinados a ser utilizados con las funciones de la API de Windows y no necesariamente funcionan con aplicaciones de shell de Windows como Windows Explorer.
[...]
Para E / S de archivos, el prefijo "//? /" A una cadena de ruta le dice a las API de Windows que deshabiliten todo el análisis de cadenas y que envíen la cadena que sigue directamente al sistema de archivos. Por ejemplo, si el sistema de archivos admite rutas grandes y nombres de archivos, puede exceder los límites MAX_PATH que las API de Windows aplican de otro modo.

En una nota secundaria, esto me hace preguntarme sobre las posibilidades de ocultar archivos (o encontrar tales archivos) desde el explorador usando nombres de archivos ilegales.


Hay un conjunto de llamadas API que funcionan con rutas externas y otras que no. MSDN suele mencionar esto.

No es que si solo escribe esa ruta en Windows Explorer en XP, esto no funciona, porque la sintaxis de la ruta externa es solo una secuencia de escape para la API WIn32 y no para el explorador de Windows. Ahora, en Win7, esto funciona porque mucha gente esperaba que esto funcionara.

También para rutas largas, ayuda si cambia el directorio de trabajo o abre el explorador con un subdirectorio como raíz.


¿Estás preguntando por qué todos los componentes en Windows no lo admiten o estás preguntando si es legal usar estas rutas largas?

Definitivamente puede usarlos con seguridad, pero puede irritar a alguien que quiera usar herramientas como Explorer para explorarlas. Vemos caminos como este todo el tiempo en la naturaleza. A veces las personas se sorprenden bastante cuando no pueden usar MY_FAVORITE_TOOL para eliminarlo ...