Я пытаюсь открыть каталог и получить доступ ко всем его файлам и подкаталогам, а также к файлам подкаталогов и т. Д. (Рекурсия).Я знаю, что могу получить доступ к файлам и подкаталогам с помощью вызова opendir, но мне было интересно, есть ли способ сделать это с помощью системного вызова open () (и как?), Или системный вызов openотносится только к файлам?
#include <stdio.h>
#include <dirent.h>
int main(void)
{
struct dirent *de; // Pointer for directory entry
// opendir() returns a pointer of DIR type.
DIR *dr = opendir(".");
if (dr == NULL) // opendir returns NULL if couldn't open directory
{
printf("Could not open current directory" );
return 0;
}
while ((de = readdir(dr)) != NULL)
printf("%s\n", de->d_name);
closedir(dr);
return 0;
}
следующий код дает мне имена файлов в моем каталоге и имена подпапок, но как я могу отличить файл от подпапки, чтобы яМожно использовать рекурсию для доступа к файлам в подпапке?
любая помощь будет оценена