Lister fichiers dans repertoire [Résolu]

Signaler
Messages postés
11
Date d'inscription
dimanche 24 avril 2011
Statut
Membre
Dernière intervention
24 août 2011
-
Messages postés
11
Date d'inscription
dimanche 24 avril 2011
Statut
Membre
Dernière intervention
24 août 2011
-
Bonjour a tous,

Voila mon, problème, j'essaye de lister tous les txt d'un repertoire avec les fonctions FindFirstFile et FindNextFile. Le problème qui se pose est qu'il affiche un fichier sur deux. imaginons que j'ai 7 fichiers txt, le programme n'en lira que 3 en en sautant 1 sur 2.

voici mon code :

#include <cstdlib>
#include 
#include <windows.h>

using namespace std;

     
int main(int argc, char *argv[])
{
    WIN32_FIND_DATA FindData;
    HANDLE hFind = FindFirstFile("C:\\ProgramData\\Contact\\*.txt", &FindData);
    cout << FindData.cFileName << endl;
    while(FindNextFile(hFind, &FindData) != 0)
    {
    FindNextFile(hFind, &FindData);
    cout << FindData.cFileName << endl;
}

    system("Pause");
    return 0;
}


The power is mine !!

3 réponses

Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6
Salut,
Enlève le second FindNextFile(hFind, &FindData); dans ta boucle while.
A+

____________________________________________________________________________
Logiciel en traitement de l'image gratuit et open source.
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
Responsabilité du dev de fermer un handle.

int main(int argc, char *argv[])
{
  WIN32_FIND_DATA FindData;
  HANDLE hFind = FindFirstFile("C:\\ProgramData\\Contact\\*.txt", &FindData);
  if(hFind != INVALID_HANDLE_VALUE) {
    do {
      cout << FindData.cFileName << endl;
    } while(FindNextFile(hFind, &FindData));
    FindClose(hFind);
  }
  system("Pause");
  return 0;
}



ciao...
BruNews, MVP VC++
Messages postés
11
Date d'inscription
dimanche 24 avril 2011
Statut
Membre
Dernière intervention
24 août 2011

Ok merci, pour votre aide. Je suis débutant et j'ai jamais utilisé d'handle avant. Maintenant tous est listé.

The power is mine !!