Просмотр содержимого папки при помощи dirent.h

Часто перед программистом стоит задача просмотра содержимого папки. Это довольно просто осуществляется на языке си.
Необходимые библиотеки (вторая для вывода):

#include <dirent.h>
#include <stdio.h>

Заморачиваться классами не будем, создадим главную функцию программы:

int main (void) {

Объявим 2 основные переменные:

    DIR *dir;
    struct dirent *ent;

Первая — указатель на поток к папке.
Вторая — структура данных папки. Среди которых нам представляет интерес разве имя файла (d_name) и его номер ( d_ino ).

Зададим путь к текущей папке:

    char directory[255] = "./";

Откроем её:

    dir = opendir(directory);

Считываем по 1 элементу из текущего каталога и выводим его имя на экран:

    while ((ent=readdir(dir)) != false) {
            printf("%s\n", ent->d_name);
    }

Закрываем поток к папке и оканчиваем работу:

    closedir(dir);
    return 0;
}

У меня программа вывела такое:

.
.cproject
..
Debug
.project
src

. и .. стандартные каталоги linux

 

Похожий код:

Фото аватара
Алексей Петров

Программист, разработчик с 5 летним опытом работы. Учусь на разработчика игр на Unity и разработчика VR&AR реальности (виртуальной реальности). Основные языки программирования: C#, C++.

Оцените автора
Бла, бла код
Добавить комментарий