所以我得到了幫助,現在我有一個程序可以搜索當前目錄,並在文件存在的情況下打印出來,現在我怎樣才能使它通過一個不同的目錄並在它的所有子目錄中搜索該文件?在一個目錄內搜索所有的子目錄
我想如果我更換了行「。」用「..」,它會回到前一個目錄,並考慮所有子目錄,但它只查找目錄中的文件,而不進入子目錄。
//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