Pregunta

Estoy utilizando el siguiente para buscar un archivo definido como un DB_CONFIG_FILE_PATH_1 macro.

wchar_t filename[100];
SearchPath( L".\\", DB_CONFIG_FILE_PATH_1, NULL, 100, filename, NULL);

Si el archivo se encuentra en C: \ directorio, se encontró. Sin embargo, si el archivo está en uno de sus subdirectorios que la función no la encuentra.

¿Pueden algunos explicar cómo buscar todas las unidades incluyendo subdirectorios para un archivo con la función anterior.

No estoy usando la función FindFirstFile porque, soy incapaz de recuperar la ruta de acceso al archivo aunque la función devuelve manejan en el fichero.

Para decirlo, quiero nombre de la ruta completa de un archivo. Sé que el nombre del archivo, pero no saben dónde se encuentra en la competición.

¿Fue útil?

Solución

Para buscar subdirectorios en código nativo en Win32, que tiene que hacer usted mismo, usando FindFirstFile y luego de manera recursiva en subdirectorios.

El valor de retorno de FindFirstFile no es un identificador de archivo - la información del archivo está contenida en la estructura WIN32_FIND_DATA regresó. El mango se utiliza en llamadas a FindNextFile para continuar la búsqueda. Para obtener un nombre de ruta completo durante su búsqueda, tendrá que hacer un seguimiento de qué directorio se encuentra actualmente y añadir los nombres de directorio descubiertos a la ruta.

SearchPath sólo se busca en la variable de entorno PATH o el primer parámetro si está presente y no busca en los subdirectorios.

Otros consejos

GetCurrentDirectory() debe decirle la ruta de acceso:

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

y el segundo argumento de FindFirstFile():

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

que es una estructura WIN32_FIND_DATA debe decirle el nombre del archivo:

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

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