FindFirstFile & FindNextFile

Signaler
Messages postés
255
Date d'inscription
samedi 20 avril 2002
Statut
Membre
Dernière intervention
16 janvier 2007
-
Messages postés
75
Date d'inscription
samedi 23 mars 2002
Statut
Membre
Dernière intervention
18 septembre 2006
-
Quelqu'un aurait-il la gentillesse de me montrer comment coder une fonction permettant de lister un répertoire quelconque. Le but de cette fonction est de renvoyer dans une ListBox (on va dire handle hWnd) le résultat de chaque élément et sous-repertoire. Le problm est que je ne sais pas comment établir les fonctions FindFirstFile, FindNextFile et Close. Merci ++

2 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
21
Elle arrive a point ta demande. Je voulais l'ajouter dans ma dll pour VB sauf que je n'ai pas de proj vb pour tester. Faudrait que je sache si la listbox vb acceptera les insert en string NULL finissante. Je vais commencer a l'ecrire, tu pourrais preparer un mini truc en vb avec juste une lisbox et un bouton pour appeler la dll ? On se le fait a 2 et tu auras le code complet quand sera au point.
Dis moi si ok.
BruNews, ciao...
Messages postés
75
Date d'inscription
samedi 23 mars 2002
Statut
Membre
Dernière intervention
18 septembre 2006

Bon, c'est pas très compliqué. D'abord tu dois appeler la fonction FindFirstFile( LPCTSTR lpFileName, LPWIN32_FIND_DATA lpFindFileData ); Le premier argument est un pointeur vers une chaine de caractère de type "C:\Test1\Test2\*.*" avec un caractère null en fin de chaine, et le deuxième est un pointeur vers un structure WIN32_FIND_DATA dont voici la composition :
typedef struct _WIN32_FIND_DATA {
DWORD dwFileAttributes;
FILETIME ftCreationTime;
FILETIME ftLastAccessTime;
FILETIME ftLastWriteTime;
DWORD nFileSizeHigh;
DWORD nFileSizeLow;
DWORD dwReserved0;
DWORD dwReserved1;
TCHAR cFileName[ MAX_PATH ];
TCHAR cAlternateFileName[ 14 ];
} WIN32_FIND_DATA;

Pour FindNextFile, c'est la même chose, sauf qu'en premier paramètre tu met le Handle donné par FindFirstFile à la place de la chaine de caractère.
Chez les 2 fonction, si elle réussie la valeur de retour est TRUE, sinon c'est FALSE, et un GetLastError renvoie ERROR_NO_MORE_FILES si il n'y a plus de fichiers du type choisi.

Je pense que c'est assé complet, si t'as besoin d'aide, tu peux me mailler à vermi-fuge@libertysurf.fr

@+
Vermifuge