Получить список файлов в определенном каталоге - C (СИ)

Узнай цену своей работы

Формулировка задачи:

ДД! Как-то можно получить список всех файлов в определенном каталоге?

Решение задачи: «Получить список файлов в определенном каталоге»

textual
Листинг программы
  1. #include <glib.h>
  2. #include <locale.h>
  3.  
  4. int main(void) {
  5.     GError * err;
  6.     GDir * dir;
  7.    
  8.     if ( ! setlocale(LC_ALL, "ru_RU.UTF-8") )
  9.         g_error("Can't set locale!\n");
  10.    
  11.     if ( dir = g_dir_open(g_get_home_dir(), 0, &err) ) {
  12.         const char * fileName;
  13.        
  14.         while ( fileName = g_dir_read_name(dir) )
  15.             g_print("%s\n", fileName);
  16.        
  17.         g_dir_close(dir);
  18.        
  19.         return 0;
  20.     }
  21.     else {
  22.         g_print("Error!\n%s\n", err->message);
  23.        
  24.         return 1;
  25.     }
  26. }

Объяснение кода листинга программы

  1. Подключаются необходимые библиотеки: Glib и locale.h
  2. В функции main() инициализируется GError* err, который будет использоваться для обработки ошибок.
  3. Устанавливается локаль на русскую, используя функцию setlocale().
  4. Открывается текущий каталог с помощью функции g_dir_open().
  5. Создается цикл, который будет выполняться до тех пор, пока функция g_dir_read_name() не вернет NULL (что означает достижение конца списка файлов).
  6. Каждый файл в цикле выводится на печать с помощью функции g_print().
  7. Функция g_dir_close() закрывает открытый каталог.
  8. Если при открытии каталога произошла ошибка, то выводится сообщение об ошибке.
  9. Функция main() возвращает 0, если все прошло успешно, и 1 в случае ошибки.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.333 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы