¿Qué causa que aparezcan caracteres no válidos (\\?\) antes de la ruta de un archivo?

¿Qué causa que aparezcan caracteres no válidos (\\?\) antes de la ruta de un archivo?

\\?\¿Qué causa que aparezcan caracteres no válidos ( ) antes de la ruta de un archivo solo en determinadas carpetas?

Ruta de archivo no válida:

\\?\D:\computerfiles...

Los archivos con una ruta no válida no se pueden abrir en la carpeta original.

Los \\?\caracteres solo aparecen para algunos archivos cuando se encuentran en la ubicación original, pero NO aparecen cuando el archivo se copia a una carpeta diferente.

Solo veo esto cuando encuentro un archivo que NO se abre (como una imagen) y reviso las Propiedades para detectar el prefijo no válido.

Además, ¿cómo puedo localizar todas las rutas con un prefijo no válido?

Respuesta1

Ese no es un personaje ilegal. Es una señal para que Windows desactive la alteración de rutas. Le permite tener caminos más largos que MAX_PATH.

segúnNombrar archivos, rutas y espacios de nombres:

Las funciones de E/S de archivos en la API de Windows convierten "/" a "\" como parte de la conversión del nombre a un nombre de estilo NT, excepto cuando se utiliza el prefijo "\\?\" como se detalla en las siguientes secciones.

La API de Windows tiene muchas funciones que también tienen versiones Unicode para permitir una ruta de longitud extendida para una longitud total máxima de 32,767 caracteres. Este tipo de ruta se compone de componentes separados por barras invertidas, cada una hasta el valor devuelto en el parámetro lpMaximumComponentLength de la función GetVolumeInformation (este valor suele tener 255 caracteres). Para especificar una ruta de longitud extendida, utilice el prefijo "\\?\". Por ejemplo, "\\?\D:\ruta muy larga".

Parece que el Explorador de Windows estuvo habilitado en algún momento para acceder a rutas largas. En el proceso, puede ver lo siguiente en el campo "Ubicación" en la página de propiedades de un archivo/carpeta:

  1. El camino “normal”, si es lo suficientemente corto
  2. La ruta de los nombres 8.3 (algo así como C:\WHATEV~1\...), si existen nombres 8.3 en este sistema de archivos y si son lo suficientemente cortos
  3. De lo contrario, la ruta de longitud extendida

tl;dr: Tu camino es demasiado largo.

información relacionada