qq'un peut-il me venir en aide pour rendre ma source recursive aux sous-repertoire, c'est a dire que je veux relancer le traitement findfirstfile sur mes sous-repertoires
de plus je veux recuperer que les fichier *.bat et je pense que comparer les chaines trouvées avec "bat" n'est pas tres bon (pb si le fichier se nomme ex: batman.txt, car lui je n'en veux pas)
mais mon principal pb et la recursivité, HELP ME
PS: je developpe une MFCAppWizard et le fichier a ecrire me sert a verifier mes donners (mais aussi parce que je dois ecrire un batch pour executer d'autres batchs)
source, directement compilable:
void Cherch_sous_rep(CString rep)
{
// ici en dur (pour l'exemple) mais normalement recuperé par une boite de dialogue
rep ="F:\\C++\\Chantier\\rep_test\\";
CString sous_repertoire = "repertoire: ";
CString fichier = "fichier: ";
FILE * file;
file = fopen("F:\\C++\\Chantier\\rep_test\\gerome.txt","w+");
HANDLE hfind;
WIN32_FIND_DATA wfd;
hfind = FindFirstFile (rep + "*.*", &wfd);
if ( hfind != INVALID_HANDLE_VALUE )
{
do
{
// vérifie que ce n'est pas le répertoire racine
if( wfd.cFileName[0] != '.')
{
// vérifie si c'est un répertoire ou non
if ( wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY )
{
// répertoire
sous_repertoire = rep + wfd.cFileName;
sous_repertoire += "\n";
fprintf (file,"%s",sous_repertoire);
}
else
{
// fichier
fichier = wfd.cFileName;
if (fichier.Find("bat") == 0)
{
fichier = "CALL " + rep + fichier;
fichier += "\n";
fprintf (file,"%s",fichier);
}
else AfxMessageBox("pas de fichiers bat");
}
}
}
// suite de la recherche
while(FindNextFile( hfind, &wfd));
// recherche terminé
FindClose(hfind);
}
}