Je suis en train d'ecrire une fonction qui doit parcourir recursivement des repertoires, puis effectuer des manipulations sur les fichiers (en fait, une suppression).
J'ai le code suivant:
int list_files(char directory[2048]) {
DIR *d;
struct dirent *de;
struct stat sb;
char dir_path[2048];
d = opendir(directory);
while((de = readdir(d)) != NULL)
{
stat(de->d_name, &sb);
if(S_ISREG(sb.st_mode)) {
printf("%s - ISDIR=%d\n", de->d_name, S_ISDIR(sb.st_mode));
}
if(S_ISDIR(sb.st_mode) && (strcmp(de->d_name,".") !=0) && (strcmp(de->d_name,"..") !=0)) {
sprintf(dir_path,"%s/%s",directory,de->d_name);
list_files(dir_path);
printf("%s: done\n", dir_path);
}
}
closedir(d);
return(0);
}
(…)