Введение
В этом практическом занятии мы создадим C-программу для перечисления всех файлов в директории с использованием заголовочного файла dirent.h.
Примечание: вам нужно самостоятельно создать файл
~/project/main.cдля практики написания кода и изучения процесса компиляции и запуска программы с использованием gcc.
cd ~/project
## создать main.c
touch main.c
## скомпилировать main.c
gcc main.c -o main
## запустить main
./main
Подключить заголовочные файлы
Нам нужно подключить стандартные заголовочные файлы ввода/вывода и заголовочный файл dirent, написав следующий код в начале программы:
#include <stdio.h>
#include <dirent.h>
Определить главную функцию
Функция main() является точкой входа в нашу программу. Наша программа начинает выполняться отсюда. Также мы объявляем указатель на директорию d типа DIR и указатель на запись о директории dir типа struct dirent.
int main(void)
{
DIR *d;
struct dirent *dir;
/*Ваш код здесь*/
return 0;
}
Открыть директорию
Мы откроем требуемую директорию с использованием функции opendir(). Здесь оператор точка (.) указывает на текущую директорию.
d = opendir(".");
Прочитать директорию
Мы будем читать каждую запись в директории с использованием функции readdir(). Здесь мы проверяем, что указатель на директорию не равен NULL. Если он не равен NULL, мы выведем все файлы, присутствующие в директории.
if (d)
{
while ((dir = readdir(d))!= NULL)
{
printf("%s\n", dir->d_name);
}
closedir(d);
}
Полный код
Вот полный код программы:
#include<stdio.h>
#include<dirent.h>
int main(void)
{
DIR *d;
struct dirent *dir;
d = opendir(".");
if (d)
{
while ((dir = readdir(d))!= NULL)
{
printf("%s\n", dir->d_name);
}
closedir(d);
}
return(0);
}
Резюме
В этом практическом занятии мы научились создавать программу на C для перечисления имен всех файлов в директории. Для этого мы использовали функции из заголовочного файла dirent.h. С помощью этой программы мы можем легко получить имена всех файлов, присутствующих в указанной директории.



