Tutorial d'initiation A la programmation avec l'API Windows
Tutorial d'initiation a la programmation Windows avec Microsoft Visual C++
Chapitre 4Le système de fichier5. Enumération de fichiers
Cours théorique :
Pour énumérer des fichiers, l'API Windows offre une sélection de 3 foncitons : FindFirstFile(), FindNextFile() et FindClose(). La fonction FindFirstFile() initialise la recherche et retourne le premier fichier trouvé (si il y en a un). Elle retourne un HANDLE sur la recherche en cours, pour permettre de poursuivre la recherche. Le fonction FindNextFile() doit ensuite être appelée pour récupérer l'ensemble des fichiers trouvés. Généralement cette fonction sera appelée dans une boucle. La fonction FindClose() referme le HANDLE et libère la mémoire occupée.
Cette suite de fonctions permet d'effectuer des recherches dans un dossier. Attention, les sous dossiers ne seront pas parcourus. La recherche peut porter sur un listage non exhaustif, par exemple, listage des fichiers '*.txt'. Pour un listage exhaustif, il faudra demander le listage des fichiers '*.*'. Le type de recherche, ainsi que le dossier de recherche sont passés à la fonction FindFirstFile() sous forme d'une chaîne de caractère de type : Chemin\\Masque (ex. c:\*.*). Aucune fonction n'est fournie pour le parcours récursif des dossiers de manière à explorer les dossiers et sous dossiers. Pour effectuer une recherche complète, il faut effectuer des appels successifs à ces 3 fonctions de manière à parcourir l'ensemble des sous dossiers. Lors d'une recherche, les pseudo-dossiers '.' et '..' sont également listés. Il peut donc être utile d'effectuer un test pour supprimer ces dossiers du listage final. Les informations concernant les fichiers et dossiers listés sont placées dans une structure WIN32_FIND_DATA (attributs, nom, taille...).
|