Итак, у меня была помощь, и теперь у меня есть программа, которая ищет в текущем каталоге и выводит файл, если он существует, теперь как я могу сделать так, чтобы он проходил через другой каталог и ищет файл во всех его подкаталогах?Поиск по всем подкаталогам в каталоге
Я думал, что если бы я заменил линию "." с «..», он вернется к предыдущему каталогу и подумает обо всех вспомогательных каталогах, но он ищет файл только в каталоге, не входя в subs.
//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;
}
Я просто попробовал ../*, и он не проходит через вспомогательные каталоги, я просто получаю «скандир: нет такого файла или каталога» – MoistyTacos