Domanda

Sto usando il seguente per la ricerca di un file definito come un DB_CONFIG_FILE_PATH_1 macro.

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

Se il file si trova in C: \ directory, si trova. Ma, se il file è in una delle sue sottodirectory la funzione non lo trova.

Può spiegare un po 'come cercare tutte le unità comprese le sottodirectory di un file con la funzione di cui sopra.

Non sto usando la funzione FindFirstFile perché, non sono in grado di recuperare il percorso del file, anche se la funzione ritorna gestire al file.

Per dirla, voglio il percorso completo di un file. So che il nome del file, ma non so dove si trova sulla comp.

È stato utile?

Soluzione

Per la ricerca sottodirectory in codice nativo su Win32, è necessario farlo da soli, usando FindFirstFile e poi recursing in sottodirectory.

Il valore restituito da FindFirstFile non è un handle di file - le informazioni sui file è contenuto nella struttura WIN32_FIND_DATA restituito. La maniglia è utilizzato nelle chiamate per FindNextFile per continuare la ricerca. Per ottenere un percorso completo durante la ricerca, è necessario tenere traccia di quello directory ci si trova e aggiungere i nomi delle directory scoperti al percorso.

SearchPath ricerca solo nella variabile d'ambiente PATH oppure il primo parametro, se presente e non cerca le sottodirectory.

Altri suggerimenti

GetCurrentDirectory() dovrebbe dirvi il percorso:

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

e il secondo argomento di FindFirstFile():

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

che è una struttura WIN32_FIND_DATA dovrebbe dirvi il nome del file:

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top