Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[WD16]API Kernel32 - FindNextFileA

1 réponse
Avatar
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

1 réponse

Avatar
Patrick Girard
Bonjour

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 :
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