该函数搜索当前目录中的文件。如果它占据一个目录,它将进入并重新搜索除当前'。'之外的文件。和以前的'..'目录。但它不工作,我想如何。它不会进入下一个目录。如何搜索当前目录中的文件和当前目录下目录中的文件?
int foo(char *currDir)
{
struct dirent *direntp;
DIR *dirp;
char currentDir[250];
if ((dirp = opendir(currDir)) == NULL)
{
perror ("Failed to open directory");
return 1;
}
//By Sabri Mev at GYTE
while ((direntp = readdir(dirp)) != NULL)
{
printf("%s\n", direntp->d_name);
if(direntp->d_type == DT_DIR)
{
if(strcmp(direntp->d_name,".") !=0 && strcmp(direntp->d_name,"..") != 0)
foo(direntp->d_name); //Recursive!
}
}
getcwd(currentDir,250);
printf("curr Dir : %s\n",currentDir);
while ((closedir(dirp) == -1) && (errno == EINTR)) ;
return 0;
}
你用调试器跟踪了代码吗?它甚至会进入递归部分吗? – Mike