[WD16]API Kernel32 - FindNextFileA
Le
pyfux

Bonjour,
J'ai besoin de lister tous les fichiers texte d'un répertoire.
Je ne souhaite pas utiliser la fonction windev fListeFichier (mon
dossier comporte plus de 400 000 fichiers).
Aussi j'utilise l'api kernel32 FindNextFileA
Et ce bout de code ne renvoi que le 2 premiers fichiers .txt du dossier !
Lpfilename est une chaîne de 260 = "C:*.txt"
nHwndf est un entier système
nHwndf= FindFirstFileA(&Lpfilename,&win32d)
TANTQUE PAS (nHwndf=-1 OU nHwndf=0 )
Trace(win32d.TcFileName)
nHwndf = FindNextFileA(nHwndf,&win32d)
FIN
FindClose(nHwndf)
D'où vient le problème ?
Je suis sur à 200% que c: contient plus de 5 fichiers .txt pour ce jeu
d'essai!
Vos idées éclairerons ma journée,
Pyfux
J'ai besoin de lister tous les fichiers texte d'un répertoire.
Je ne souhaite pas utiliser la fonction windev fListeFichier (mon
dossier comporte plus de 400 000 fichiers).
Aussi j'utilise l'api kernel32 FindNextFileA
Et ce bout de code ne renvoi que le 2 premiers fichiers .txt du dossier !
Lpfilename est une chaîne de 260 = "C:*.txt"
nHwndf est un entier système
nHwndf= FindFirstFileA(&Lpfilename,&win32d)
TANTQUE PAS (nHwndf=-1 OU nHwndf=0 )
Trace(win32d.TcFileName)
nHwndf = FindNextFileA(nHwndf,&win32d)
FIN
FindClose(nHwndf)
D'où vient le problème ?
Je suis sur à 200% que c: contient plus de 5 fichiers .txt pour ce jeu
d'essai!
Vos idées éclairerons ma journée,
Pyfux
je crois que l'erreur vient du fait que tu utilises la même variable
nHwndf en retour et en parametre pour la fonction :
nHwndf = FindNextFileA(nHwndf,&win32d)
tu trouveras un exemple windev ici :
http://forum.pcsoft.fr/thread.awp?groupid=pcsoft.fr.windev&v=2&postid7085
si ça peut aider...
Le 30/06/2011 11:17, pyfux a écrit :