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

cs_Kevin972 Messages postés 11 Date d'inscription mardi 16 mars 2004 Statut Membre Dernière intervention 5 juillet 2004 - 17 juin 2004 à 15:33
cs_alain34270 Messages postés 85 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 18 septembre 2005 - 17 juin 2004 à 18:32
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

cs_Kevin972 Messages postés 11 Date d'inscription mardi 16 mars 2004 Statut Membre Dernière intervention 5 juillet 2004
17 juin 2004 à 15:35
j'oubliait en c'est du c de plus il faudrait que dans le listing tout le chemin soit inscrit

Merci encore.....
0
cs_alain34270 Messages postés 85 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 18 septembre 2005
17 juin 2004 à 15:57
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
0
cs_Kevin972 Messages postés 11 Date d'inscription mardi 16 mars 2004 Statut Membre Dernière intervention 5 juillet 2004
17 juin 2004 à 17:08
merci beaucoups pour ta reponse....

ps:je voulais savoir si il y a des "include" particuliers a mettre puisque je travail en multiplateforme
0
cs_alain34270 Messages postés 85 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 18 septembre 2005
17 juin 2004 à 18:32
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
0