Если вы изучите содержимое entry->d_name
, вы увидите, что оно содержит только имя файла, а не полный путь.Поэтому, когда вы пытаетесь открыть файл, он не может, если файл не существует в текущем каталоге.Вам нужно построить полный путь и использовать его, чтобы открыть файл.
char fullname[1024];
strcpy(fullname,s);
strcat(fullname,"\\");
strcat(fullname,entry->d_name);
ff = fopen(fullname, "r");