Просмотр содержимого папки при помощи 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

Просмотров:   3265

Комментарии

Добавить комментарий

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
CAPTCHA
Введи эти символы. Ато роботы одолели!