Получить список файлов в определенном каталоге - 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;
    }
}

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

  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
Похожие ответы