Получить список файлов в определенном каталоге - C (СИ)
Формулировка задачи:
ДД!
Как-то можно получить список всех файлов в определенном каталоге?
Решение задачи: «Получить список файлов в определенном каталоге»
textual
Листинг программы
#include <glib.h>
#include <locale.h>
int main(void) {
GError * err;
GDir * dir;
if ( ! setlocale(LC_ALL, "ru_RU.UTF-8") )
g_error("Can't set locale!\n");
if ( dir = g_dir_open(g_get_home_dir(), 0, &err) ) {
const char * fileName;
while ( fileName = g_dir_read_name(dir) )
g_print("%s\n", fileName);
g_dir_close(dir);
return 0;
}
else {
g_print("Error!\n%s\n", err->message);
return 1;
}
}
Объяснение кода листинга программы
- Подключаются необходимые библиотеки: Glib и locale.h
- В функции main() инициализируется GError* err, который будет использоваться для обработки ошибок.
- Устанавливается локаль на русскую, используя функцию setlocale().
- Открывается текущий каталог с помощью функции g_dir_open().
- Создается цикл, который будет выполняться до тех пор, пока функция g_dir_read_name() не вернет NULL (что означает достижение конца списка файлов).
- Каждый файл в цикле выводится на печать с помощью функции g_print().
- Функция g_dir_close() закрывает открытый каталог.
- Если при открытии каталога произошла ошибка, то выводится сообщение об ошибке.
- Функция main() возвращает 0, если все прошло успешно, и 1 в случае ошибки.