PB pour parcourir tout les dossiers

Résolu
supers03 Messages postés 106 Date d'inscription mardi 6 janvier 2004 Statut Membre Dernière intervention 1 décembre 2008 - 23 févr. 2006 à 20:00
supers03 Messages postés 106 Date d'inscription mardi 6 janvier 2004 Statut Membre Dernière intervention 1 décembre 2008 - 23 févr. 2006 à 22:49
Bonjours à tous

J'ai écrit un programme qui parcour un dossier et ses sous-dossier, avec une fonction qui "s'auto appel" :

void cherche(char *s){


HANDLE hfind;
WIN32_FIND_DATA wfd;
hfind = FindFirstFile(s, &wfd);


if (hfind != INVALID_HANDLE_VALUE){
do{
if (wfd.cFileName[0] != '.'){
if ((wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)){
SetCurrentDirectory (wfd.cFileName);
cherche("*");
}
if (!(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)){
//là ben je fais ce que je veu
}


}
}while (FindNextFile(hfind, &wfd));


FindClose(hfind);


}
SetCurrentDirectory("..");
}



void main(){


cout << "BEGIN" <<endl<<endl;


SetCurrentDirectory ("\");


cherche("*");


system("pause");
}

Quand je fais une recherche dans un petit dossier ça marche niquel, par contre une recherche sur la racine d'un disque dur fait planter le programme (surement un pb de mémoire)
Quelqu'un a une solution ???

2 réponses

cs_Arnotic Messages postés 933 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 9 janvier 2012
23 févr. 2006 à 20:14
Regarde dans mes programmes (obtenir la taille des dossiers et sous dossiers) tu as un exemple de récursivité qui fonctionne aussi sur le gros répertoire.

@+
Arnotic,
Admin CS,
http://dev.winsysdev.com
MVP Visual C++
3
supers03 Messages postés 106 Date d'inscription mardi 6 janvier 2004 Statut Membre Dernière intervention 1 décembre 2008
23 févr. 2006 à 22:49
Merci bien, ta source est en VisualC++ donc j'ai pas trop regardé mais dans les commentaires y'avais un bout de code qui m'a bien servi
3
Rejoignez-nous