Lister les fichiers d'un dossier

Résolu
angsthase Messages postés 72 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 11 avril 2005 - 31 mars 2005 à 15:17
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 - 1 avril 2005 à 09:04
/*Bonjour,

je voudrais lister les fichier qui se trouve dans un dossier. ( ici le dossier par défaut);



Lorsque je lance mon code, il me fait bien la liste de tous les
dossier. Mais il repete indéfiniment le dernier dossier. Comment savoir
si c'est bien le dernier dossier ?????



J'ai essayer de comparer le nom des dossier( la ligne en rouge), mais même s'il ont le même nom, il fait une différence.



Quelqu'un peut-il m'aider ???



Voici mon code : */



#define _WIN32_WINNT 0x0400



#include <windows.h>

#include <stdio.h>

#include <stdlib.h>



int main(int argc, char *argv[])

{





WIN32_FIND_DATA FindFileData, OldFindFileData;

HANDLE hFind;



int i=1, key=0;



hFind = FindFirstFile("*.txt", &FindFileData);

if (hFind == INVALID_HANDLE_VALUE)

{

printf ("Invalid File Handle. GetLastError reports %d\n\a", GetLastError ());

system("PAUSE");

return (0);

}





printf ("File number %i is: %s\n", i, FindFileData.cFileName);

OldFindFileData.cFileName=FindFileData.cFileName;



do

{

FindNextFile(hFind, &FindFileData) ;

if(FindFileData.cFileName==OldFindFileData.cFileName)

{

printf(" *** Fin Des Fichiers *** \n\n");

key=1;

}

else

{

i++;

printf ("File number %i is: %s\n",i,FindFileData.cFileName);

OldFindFileData=FindFileData;

}

}

while(!key);

printf("\n");

system("PAUSE");

}









AngstHase

8 réponses

ricky78 Messages postés 126 Date d'inscription jeudi 5 juin 2003 Statut Membre Dernière intervention 11 juillet 2006
31 mars 2005 à 15:50
essaye ça

HANDLE hfind;
WIN32_FIND_DATA wfd;

/* Liste le contenu du répertoire */
hfind = FindFirstFile ( "monchemin", &wfd );
if (hfind != INVALID_HANDLE_VALUE)
{
do
{
if( wfd.cFileName[0] != '.') //test les repertoire \. et \.. et les zapp
{


if(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) // c'est un repertoire
{
// triatement pour les repertoires
}
else
{
// c'est un fichier
// traitement pour les fichiers }




}

}while(FindNextFile( hfind, &wfd));
FindClose(hfind);
}

TOCHE
3
angsthase Messages postés 72 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 11 avril 2005 1
31 mars 2005 à 16:30
Je ne comprends pas ton while

while(FindNextFile( hfind, &wfd));





AngstHase
0
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
31 mars 2005 à 16:34
Ca arrête la boucle si FindNextFile renvoi FALSE (c'est à dire s'il n'y a plus de fichier à lister)
0
angsthase Messages postés 72 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 11 avril 2005 1
31 mars 2005 à 16:44
Grand merci, tu viens de me faire decouvrir les booléen !!!!!!!!!!!!!!!!!!!!!!



Je viens de commencer en c++, et j'avais lu que les booléen n'existait pas en c++. Je trouvais ça bizarre mais je n'ai jamais essayer. Alors je travaillais avec des int à 0 ou 1!!!



Je tombe sur le c.. !!!

Doublement merci!

AngstHase
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
31 mars 2005 à 16:48
en fait le type BOOL et les var TRUE et FALSE (en majuscules) sont des defines de windows.h
typedef int BOOL;
#define TRUE 1;
#define FALSE 0;

En effet le type booléen n'existe pas en C (d'où ces defines) mais en c++ il existe ;
bool, true, false (en minuscule).
0
angsthase Messages postés 72 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 11 avril 2005 1
31 mars 2005 à 17:36
Merci pour les détails YMCA

AngstHase
0
cs_Matt67 Messages postés 549 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 6 mars 2010 3
31 mars 2005 à 20:41
Bonsoir,




Le type booleen existe en C (Norme C99).



Matt...
0
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
1 avril 2005 à 09:04
Matt67 -> Merci pour le renseignement (de toute façon j'utilise dèjà pas le type booléen en C++).
0
Rejoignez-nous