Lister fichiers dans repertoire [Résolu]

Messages postés
11
Date d'inscription
dimanche 24 avril 2011
Statut
Membre
Dernière intervention
24 août 2011
- - Dernière réponse : chikusa
Messages postés
11
Date d'inscription
dimanche 24 avril 2011
Statut
Membre
Dernière intervention
24 août 2011
- 17 juin 2011 à 13:33
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 !!
Afficher la suite 

3 réponses

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

____________________________________________________________________________
Logiciel en traitement de l'image gratuit et open source.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 197 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Pistol_Pete
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
13
3
Merci
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++

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 197 internautes nous ont dit merci ce mois-ci

Commenter la réponse de BruNews
Messages postés
11
Date d'inscription
dimanche 24 avril 2011
Statut
Membre
Dernière intervention
24 août 2011
0
Merci
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 !!
Commenter la réponse de chikusa