Question

J'utilise ce qui suit à la recherche d'un fichier défini comme DB_CONFIG_FILE_PATH_1 macro.

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

Si le fichier est dans C: \ répertoire, il se trouve. Mais, si le fichier est dans l'un de ses sous-répertoires de la fonction ne trouve pas.

Certains peuvent expliquer comment rechercher tous les disques, y compris les sous-répertoires pour un fichier avec la fonction ci-dessus.

Je ne suis pas d'utiliser la fonction FindFirstFile parce que, je suis incapable de récupérer le chemin du fichier, même si la fonction retourne gérer le fichier.

Pour le mettre, je veux chemin d'accès complet d'un fichier. Je sais que le nom du fichier, mais je ne sais pas où il est sur le comp.

Était-ce utile?

La solution

Pour les sous-répertoires de recherche dans le code natif sur Win32, vous devez le faire vous-même, en utilisant FindFirstFile récursifs puis dans les sous-répertoires.

La valeur de retour de FindFirstFile n'est pas un descripteur de fichier - les informations du fichier est contenu dans la structure WIN32_FIND_DATA retournée. La poignée est utilisée dans les appels à FindNextFile pour poursuivre la recherche. Pour obtenir un nom de chemin complet au cours de votre recherche, vous devez garder une trace de ce répertoire que vous êtes actuellement et ajouter les noms de répertoires découverts sur le chemin.

SearchPath recherche uniquement dans la variable d'environnement PATH ou le premier paramètre si elle est présente et ne recherche pas les sous-répertoires.

Autres conseils

GetCurrentDirectory() devrait vous dire le chemin:

http://msdn.microsoft.com/ fr-fr / bibliothèque / aa364934 (VS.85) .aspx

et le second argument de FindFirstFile():

http://msdn.microsoft.com/ fr-fr / bibliothèque / aa364418 (VS.85) .aspx

qui est une structure devrait vous dire WIN32_FIND_DATA le nom du fichier:

http://msdn.microsoft.com/ fr-fr / bibliothèque / aa365740 (VS.85) .aspx

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top