Lister le contenu d'un repertoire et sous repertoire (multiplateforme)

Signaler
Messages postés
11
Date d'inscription
mardi 16 mars 2004
Statut
Membre
Dernière intervention
5 juillet 2004
-
Messages postés
85
Date d'inscription
mardi 11 février 2003
Statut
Membre
Dernière intervention
18 septembre 2005
-
Salut a tous !

Je souhaite faire une fonction dans un prog. qui permette de lister le contenu d'un repertoire et sous repertoire (si il y a...) en multiplateforme (windows/Unix), pour en extraire la liste des fichiers présensent selon l'extension (ex:*.txt)

Si vous avez une idee ... merci d'avance !

4 réponses

Messages postés
11
Date d'inscription
mardi 16 mars 2004
Statut
Membre
Dernière intervention
5 juillet 2004

j'oubliait en c'est du c de plus il faudrait que dans le listing tout le chemin soit inscrit

Merci encore.....
Messages postés
85
Date d'inscription
mardi 11 février 2003
Statut
Membre
Dernière intervention
18 septembre 2005

salut,

si tu veux lister les sous répertoires, tu es obligé de demander toutes les entrées, et sélectionner celles dont l'extension te convient.

Tu peux utiliser cette fonction (en l'adaptant) :

void listeRepertoire(char *repertoire)
{
struct _finddata_t fileInfo;
char repert[2048];
char rech[2048];

long idRecherche;
long result;

sprintf(rech,"%s\\*.*",repertoire);

idRecherche = _findfirst(rech,&fileInfo);
if (idRecherche==-1)
result = -1;
else
result = 0;
while (result==0)
{
//saut des répertoires "." et ".."
if (strcmp(fileInfo.name,".")!=0 && strcmp(fileInfo.name,"..")!=0)
{
//test pour savoir si l'entrée est un répertoire
if ((fileInfo.attrib & _A_SUBDIR)!=0)
{
//traitement en cas de sous-répertoire
sprintf(repert,"%s\\%s",repertoire,fileInfo.name);
listeRepertoire(repert);
}
else
{
//traitemement en cas de fichier
}
}
//lecture entrée suivante
result = _findnext(idRecherche,&fileInfo);
}
_findclose(idRecherche);
}

a+
alain
Messages postés
11
Date d'inscription
mardi 16 mars 2004
Statut
Membre
Dernière intervention
5 juillet 2004

merci beaucoups pour ta reponse....

ps:je voulais savoir si il y a des "include" particuliers a mettre puisque je travail en multiplateforme
Messages postés
85
Date d'inscription
mardi 11 février 2003
Statut
Membre
Dernière intervention
18 septembre 2005

je pense que io.h est bon pour windows et linux, mais si ce n'est pas le cas, désolé, je ne sais plus : il y a longtemps que je n'ai pas développé sous linux.

regarde avec man les include à mettre sous linux.

Pense à tester la plateforme pour le sens des barres obliques :)

a+
alain