Trouver l'emplacement d'un fichier en c

zilot2 -  
 zilot2 -
Bonjour,et pardonnez mon francais mon but est de faire un programme en c qui cherche l'emplacement d'un fichier executable par exemple et retourne son emplacement ( il scan tous les partissiant du disque dur pour sa recherche et retourne cette emplacement dans un string voici mon essai :
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{



WIN32_FIND_DATA ffdata;
HANDLE ffind;
int i;

ffind=FindFirstFile("*.*", &ffdata);
printf ("The first file found is %s\n", ffdata.cFileName);
i=strcmp("lilo3.exe",ffdata.cFileName);

while (FindNextFile(ffind, &ffdata) != 0 && (i!=0)) {


FindNextFile(ffind, &ffdata);
printf("%s",ffdata.cFileName);
i=strcmp("lilo3.exe",ffdata.cFileName);}



FindClose(ffind);



return 0;}
le probleme avec findfirstfile et findnextfile il faut la donner dans quelle repertoire a chercher et elle ne cherche pas dans les sous repertoire: aidez moi svp et merci
A voir également:

1 réponse

theRedCat Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   61
 
Salut!

Alors sous windows je connais pas trop les différentes fonctions qui permettent de le faire, mais ce sera un truc du style opendir() et readdir()...

En gros, ta fonction devra scanner ta racine, et à chaque fois que tu tombes sur un répertoire (un dossier), tu rappelle ta fonction qui va fouiller dans le dossier et aisin de suite tant que ton programme trouvera un dossier...

Si ta fonction trouve, elle revoie le chemin vers ton fichier, sinon elle renvoie 0...

En pseudo code ça pourrai donner un truc comme ça (à peu près):

path cherche_fichier(path)
{
if(TROUVE_FICHIER)
return(path);
else if(TROUVE_UN_DOSSIER)
path = cherche_fichier(path_du_dossier);
else
return(0);
}

main()
{

path = cherche_fichier(RACINE);

}


C'est le principe de la récursivité... Mais en à-peu-près, vu que c'est un peu loin comme notion pour moi. ^^

Bon courage!
0
zilot2
 
merci
0