Comment lister fichiers d'un repertoire?

Signaler
Messages postés
37
Date d'inscription
lundi 14 mars 2005
Statut
Membre
Dernière intervention
20 mai 2009
-
Messages postés
192
Date d'inscription
vendredi 19 mars 2004
Statut
Membre
Dernière intervention
30 janvier 2008
-
Bonjour, connaitriez vous un code source exemple, expliquant comment lister les fichiers d'un repetoire. j'avais deja trouvé un code, mais apres avoir scanné tous les fichiers du repertoir, il etait impossible d'ouvrir un autre fichier (ifsteram f(".....") ). Sauriez vous pourquoi?
Je vous remerci d'avance

Slown

8 réponses

Messages postés
192
Date d'inscription
vendredi 19 mars 2004
Statut
Membre
Dernière intervention
30 janvier 2008

WIN32_FIND_DATA FindFileData;
HANDLE hFind;
DWORD dwError;
LPSTR DirSpec;






DirSpec = (LPSTR) malloc(MAX_PATH);
strcpy(DirSpec, path); // path est le chemin du fichier
strcat(DirSpec,

"\\*"
);
hFind = FindFirstFile(DirSpec, &FindFileData);


if
(hFind == INVALID_HANDLE_VALUE)



  return



false
;




FindNextFile(hFind, &FindFileData);


while
(FindNextFile(hFind, &FindFileData) != 0)
{
  // là tu listes...


}
dwError = GetLastError();
FindClose(hFind);


if
(dwError != ERROR_NO_MORE_FILES)





  return



false
;

free(DirSpec);
Messages postés
192
Date d'inscription
vendredi 19 mars 2004
Statut
Membre
Dernière intervention
30 janvier 2008

je voulais dire biensûr que path est le chemin du répertoire
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
2
Salut,

THEwarrior333> fais gaffe qu'avec ton code, tu ignore les 2 premiers fichiers...

J'aurais plutot fait un truc de ce genre:

hFind = FindFirstFile(...);

if(hFind != INVALID_HANDLE_VALUE)

{

   do

   {

      // traitement

   }

   while(FindNextFile(hFind, ...));

   FindClose(hFind);

}
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
Salut,


Bah il ignore juste . et .., non ?


Comme son code force l'*, ça ne pose a priori pas de problème (path
doit être fourni sans caractère génériques : juste le chemin du rep).


Donc fonctionnnellement, ça à l'air ok, même si la version de aardman paraît plus souple d'emploi.
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
2
Salut,

il ignore les deux premiers fichiers, qui ne sont pas forcement . et
.., donc il vaut mieux eviter ces deux cas direcement en les testants
dans la boucle.

essayez de lister des fichiers de 'c:\' par exemple.
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
Au temps pour moi. J'avais zappé au moins le cas des racines. Merci pour la précision.
Messages postés
37
Date d'inscription
lundi 14 mars 2005
Statut
Membre
Dernière intervention
20 mai 2009

Cool, j'vous remercie pour votre aide precieuse, ça m'a bien aidé!

Slown
Messages postés
192
Date d'inscription
vendredi 19 mars 2004
Statut
Membre
Dernière intervention
30 janvier 2008

Effectivement, merci de l'avoir signalé