Pregunta

Estoy usando C++ y accediendo a una ruta UNC a través de la red.Esta ruta es ligeramente mayor que MAX_PATH.Entonces no puedo obtener un identificador de archivo.

Pero si ejecuto el programa en la computadora en cuestión, la ruta no es mayor que MAX_PATH.Entonces puedo obtener un identificador de archivo.Si cambio el nombre del archivo para que tenga menos caracteres (menos la longitud del nombre de la computadora), puedo acceder al archivo.

¿Se puede acceder a este archivo a través de la red incluso sabiendo que el nombre de la computadora en la ruta UNC lo coloca por encima del límite MAX_PATH?

¿Fue útil?

Solución

Recuerdo que hay alguna característica como usar \\?\ al inicio del camino para sortear el MAX_PATH límite.Aquí hay una referencia en MSDN:

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

Para máquinas remotas, usaría un nombre de ruta como: \\?\unc\server\share\path\file.El \\?\unc\ es el prefijo especial y no se utiliza como parte del nombre de archivo real.

Otros consejos

Es posible que pueda controlar el archivo si intenta abrirlo después de convertir el nombre del archivo a un nombre de archivo corto (8.3).De lo contrario, ¿puede asignar el directorio en el que se encuentra el archivo como una unidad y acceder al archivo de esa manera?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top