[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
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Patrick Girard
Le #23517361
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
Publicité
Poster une réponse
Anonyme