poktopok
Messages postés1Date d'inscriptionlundi 30 janvier 2006StatutMembreDernière intervention 3 mars 2006
-
3 mars 2006 à 12:34
yserver
Messages postés203Date d'inscriptionlundi 2 août 2004StatutMembreDernière intervention 8 septembre 2006
-
4 mars 2006 à 09:08
J'utilise une structure du type WIN32_FIND_DATA File, pour un parcours de fichiers. Mais je n'arrive pas a parcourir les sous dossier. Apparamment il faut comparer, DWORD [ dwFileAttributes] et TCHAR [ cFileName][MAX_PATH] pour savoir si c'est un répertoire, mais je ne sais pas comment les comparer.
Merci de m'aider.
yserver
Messages postés203Date d'inscriptionlundi 2 août 2004StatutMembreDernière intervention 8 septembre 2006 4 mars 2006 à 09:08
Bonjour
Voici un petit exemple d'utilisation de FindFirstFile() FindNextFile() qui permet de parcourir un repertoire et tous ces sous repertoire. C'est tiré d'une classe que j'ai faite. Les commentaires doivent suffire.
//Initialisation des variables
//Ajout de \*.* cChemin
strcpy(cChemin, cRepertoire); strcat(cChemin, "\\*.*");
//Initialisation du Handle de recherche de fichiers
hFind = FindFirstFile(cChemin, &wData);
//Suppresion de \*.* a cChemin
strcpy(cChemin, cRepertoire);
if (hFind != INVALID_HANDLE_VALUE)
{
do
{
if(wData.cFileName[0] != '.')
{
//Increment la barre de progression
//Si C'est un répertoire
if (wData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
//puisque c'est un repertoire, on recupere la nouvelle adresse, et on va rentrer dedans...
strcpy(cChemin, cRepertoire); strcat(cChemin, "\"); strcat(cChemin, wData.cFileName);
//On rappelle la fonction pour qu'elle analyse le sous répertoire
ScanRep(cChemin);
ulNbRep ++;
// revient un repertoire en arriere
strcpy(cChemin, cRepertoire);
}
//Si non c'est un fichier
else
{
// ce n'est pas un répèrtoire donc le fichier est analysé
strcpy(cChemin, cRepertoire); strcat(cChemin, "\"); strcat(cChemin, wData.cFileName);
ulNbFichiers ++;
dwTaille = (wData.nFileSizeHigh * (MAXDWORD+1)) + wData.nFileSizeLow;
ulTailleMo += (int)(dwTaille/1048576);
}
}
} while ( FindNextFile ( hFind , &wData ) ) ;
}
FindClose( hFind );
}