特定のパスに含まれるすべてのファイル、ディレクトリ、およびサブディレクトリを再帰的に取得したいと考えています。しかし、コードが第 2 レベル (ディレクトリ内のディレクトリ) に到達すると問題が発生します。内部ディレクトリを開いてその内容を検索する代わりに、エラーがスローされます。これが私がやったことです:
void getFile(char *path)
{
DIR *dir;
struct dirent *ent;
if ((dir = opendir(path)) != NULL) {
/* print all the files and directories within directory */
while ((ent = readdir(dir)) != NULL) {
if((strcmp(ent->d_name,"..") != 0) && (strcmp(ent->d_name,".") != 0)){
printf ("%s", ent->d_name);
if(ent->d_type == DT_DIR){
printf("/\n");
getFile(ent->d_name);
}
else{
printf("\n");
}
} // end of if condition
} // end of while loop
closedir (dir);
}