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 40 41 42 43 44 45 46
| #include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <sys/stat.h>
#define MAX_LEN 1024
#define PATH "/Users/pouet/"
#define CONCAT_PATH(buffer, path, nom) \
do { \
strcpy(buffer, path); \
strcat(buffer, nom); \
} while (0)
void test_dossier(mode_t mode) {
if (S_ISDIR(mode) == 0)
printf("est un fichier\n");
else
printf("est un dossier\n");
}
void lire_dossier(DIR *fd) {
char buffer[MAX_LEN] = "";
struct dirent *pwd;
struct stat buf;
pwd = readdir(fd);
while (pwd) {
CONCAT_PATH(buffer, PATH, pwd->d_name);
printf("%s\t\t", buffer);
lstat(buffer, &buf);
test_dossier(buf.st_mode);
pwd = readdir(fd);
}
}
int main(void) {
DIR *fd = opendir(PATH);
if (fd == NULL)
return EXIT_FAILURE;
lire_dossier(fd);
closedir(fd);
return EXIT_SUCCESS;
} |
Partager