для linux os
В приведенном ниже коде будут перечислены все файлы и подкаталоги в dir_path
(для текущего каталога используйте dir_path = "."
).
ОПИСАНИЕ
Это описание взято из man7.org ссылка
struct dirent *readdir(DIR *dirp);
readdir ()
Функция readdir()
возвращает указатель на dirent structure
, представляющий следующую запись каталога в потоке каталога, на который указывает dirp
. Он возвращает NULL
при достижении конца потока каталога или при возникновении ошибки . для получения дополнительной информации go перейдите по ссылке выше для man7.org .
#include <stdio.h>
#include <dirent.h>
int main(void)
{
/* de is Pointer for directory entry */
struct dirent *de;
const char* dir_path = "C:/Users/me/Documents/Example";
/*opendir() returns a pointer of DIR type.*/
DIR *dr = opendir(dir_path);
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;
}
для windows os
для windows используйте файл заголовка: fileapi.h
см. Документацию microsoft здесь: fileapi.h
на этот вопрос ответили ранее в SO по ссылке ниже с использованием функций FindFirstFile
, FindNextFile
и FindClose
.
просмотрите ответ по ссылке: список каталога в windows на C языке программирования