所以我得到了帮助,现在我有一个程序可以搜索当前目录,并在文件存在的情况下打印出来,现在我怎样才能使它通过一个不同的目录并在它的所有子目录中搜索该文件?在一个目录内搜索所有的子目录
我想如果我更换了行“。”用“..”,它会回到前一个目录,并考虑所有子目录,但它只查找目录中的文件,而不进入子目录。
//headers here
char *FINDME=NULL;
int filter (const struct dirent *p){
int retval=0;
if (fnmatch(FINDME,p->d_name, 0) == 0)
retval = 1;
return retval;
}
int main(int argc, char **argv){
struct dirent **namelist;
int i = 0;
FINDME = (argc > 1) ? argv[1] : "testfilename";
i = scandir("..", &namelist, filter, alphasort);
if(i < 0){
perror("scandir");
exit(1);
}
while(i--){
printf("%s\n", namelist[i]->d_name);
free(namelist[i]);
}
free(namelist);
return 0;
}
我只是试过../*,它不通过子目录,我只是得到“scandir:没有这样的文件或目录” – MoistyTacos 2015-04-03 19:25:04