Получение списка файлов в папке с использованием C

StackOverflow https://stackoverflow.com/questions/4009307

  •  25-09-2019
  •  | 
  •  

Вопрос

У меня есть путь к папке, например

/моя папка

или в окнах:

C: myfolder

И я хочу получить список всех файлов в этой папке. Как я должен сделать это в C?

Различается ли это в C ++ или C99?

Как я могу получить список его папок?

Любая помощь ценится.

Это было полезно?

Решение

В операционных системах POSIX вы можете назвать opendir () и readdir (). В Windows вы можете вызвать _findFirst () и _findnext (). С небольшим усилием вы можете реализовать свой собственный OPENDIR () и READDIR () как функции обертки под Windows, чтобы ваш код приложения может использовать ту же API везде. Пример этого можно найти здесь.

Другие советы

Вы можете использовать функции, объявленные в укрывать

Direent.h - заголовок в библиотеке C PSIX для языка программирования C, который содержит конструкции, которые облегчают прохождение каталогов. Функция не является частью стандартов C, но считается «псевдо-стандартным» и обычно портативна между платформами.
http://en.wikipedia.org/wiki/Dirent.h.

#include <dirent.h>

int main(int argc, char **argv)
{
    DIR *dir;
    struct dirent *de;

    dir = opendir("."); /*your directory*/
    while(dir)
    {
        de = readdir(dir);
        if (!de) break;
        printf("%i %s\n", de->d_type, de->d_name);
    }
    closedir(dir);
    return 0;
}

Лучший подход в C ++ использует Boost Filesystem.

Что касается C, вам потребуется API платформы (POSIX / WinAPI).

POSIX Документация + Пример: http://www.opengroup.org/onlinepubs/009695399/functions/readdir.html.

Проверьте get_all_files_within_folder() Я написал в C / C ++ здесь, который я ответил на подобный вопрос как ваш. Это отлично работает для меня. Надеюсь, поможет.

Это классическая задача, одновестный раствор может найти в Kernigan & Ritchie - язык программирования C (глава 8.6). Сущность задачи - рекурсивная траверс целевой папки и его подпапки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top