Problème pour liste répertoires/fichiers
J'ai besoin de lister tous les fichiers et répertoires qui sont dans un répertoire demandé. Pour cela j'ai faire une fonction :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| void listerDir( const char * directory )
{
DIR *dp;
FILE *fp;
char * tmp;
char tmpdir[100];
struct dirent *ep;
struct stat sts;
dp = opendir(directory);
if (dp != NULL)
{
while ((ep = readdir(dp)) != NULL)
{
/* pour ne pas traiter . et .. */
if ( (strcmp(ep->d_name, ".") != 0)
&& (strcmp(ep->d_name, "..") != 0)
)
{
printf("> %s\n", ep->d_name);
count = stat(ep->d_name, &sts );
if( count == 0)
{
if(S_ISDIR(sts.st_mode)) {
printf("c un rep\n");
}
if (S_ISREG(sts.st_mode)){
printf("c un fichier\n");
}
}
}
}
closedir (dp);
}
} |
resultat :
Citation:
> 1
> 2
> 3
> 4
> 5
> 6
> 7
> 8
> 9
> 10
> test.txt
Donc il me liste bien les répertoires ainsi que les fichiers mais je ne reconnait pas leurs types ... Par contre quand je fait un test sur directory = "." (répertoire courant) bizzarement ca liste sans problème... Je me suis penché sur le méthode opendir( rep ) pour déterminer quel été les répertoires...( c'est a dire dans mon cas 1 2 3 4 etc ... ) ca ne fonctionne pas non plus... je suis un peu bloqué la... Je ne vois pas pourquoi la fonction stat renvoi 0 lorsque je ne suis plus dans le répertoire courant...J'ai bien vérifié mes droits sur les répertoire que je veux lister et j'ai bien tous les droits.
help !!
merci;)