[C] Arborescence de dossier
Résolu
For the birds
-
For the birds -
For the birds -
Bonjour,
J'ai un petit soucis en de développement en C
Je cherche à parcourir récursivement le contenu d'un d'un répertoire
Je prevois déjà un soucis avec . .. mais la n'est pas le problème
je ne trouve pas comment déterminer si une entrer est un fichier ou un répertoire ....
actuellement mon code ressemble à ceci:
#include <stdio.h>
#include <dirent.h>
int main(void)
{
DIR * rep = opendir(".");
if (rep != NULL)
{
struct dirent * ent;
while ((ent = readdir(rep)) != NULL)
{
printf("File %s\n", ent->d_name);
}
closedir(rep);
}
return 0;
}
D'avance merci
J'ai un petit soucis en de développement en C
Je cherche à parcourir récursivement le contenu d'un d'un répertoire
Je prevois déjà un soucis avec . .. mais la n'est pas le problème
je ne trouve pas comment déterminer si une entrer est un fichier ou un répertoire ....
actuellement mon code ressemble à ceci:
#include <stdio.h>
#include <dirent.h>
int main(void)
{
DIR * rep = opendir(".");
if (rep != NULL)
{
struct dirent * ent;
while ((ent = readdir(rep)) != NULL)
{
printf("File %s\n", ent->d_name);
}
closedir(rep);
}
return 0;
}
D'avance merci
A voir également:
- [C] Arborescence de dossier
- Dossier appdata - Guide
- Impossible de supprimer un dossier - Guide
- Mettre un mot de passe sur un dossier - Guide
- Dossier démarrage - Guide
- Dossier rar - Guide
2 réponses
Bonjour
Dans ta structure dirent, aide toi du "unsigned char d_type"
Compare le avec des masques binaires, tu les trouvera dans le .h correspondant je crois bien
Il t'indiquera le type de fichier
Par exemple
http://kafka.fr.free.fr/docs/prog_syst_linux-html/html/slide_28.html
Dans ta structure dirent, aide toi du "unsigned char d_type"
Compare le avec des masques binaires, tu les trouvera dans le .h correspondant je crois bien
Il t'indiquera le type de fichier
if (ent->d_type & DT_UNKNOWN) printf("\t\tUNKNOWN"); if (ent->d_type & DT_DIR) printf("\t\tDIRECTORY"); if (ent->d_type & DT_LNK) printf("\t\tLINK"); if (ent->d_type & DT_FIFO) printf("\t\tPIPE");
Par exemple
http://kafka.fr.free.fr/docs/prog_syst_linux-html/html/slide_28.html