Подсчет количества файлов и папок в каталоге - PullRequest
0 голосов
/ 17 июня 2020

Как я могу подсчитать количество файлов и папок в каталоге, используя C. Я понятия не имею. Я не мог писать однострочный код. Меня не волнует текущий каталог. и родительский каталог. Я должен указать путь, например, «C: / Users / me / Documents / Example», пока я запускаю программу.

И мне нужен вывод типа «Там в этом каталоге находятся 2 папки и 4 файла ".

1 Ответ

0 голосов
/ 17 июня 2020

для linux os

В приведенном ниже коде будут перечислены все файлы и подкаталоги в dir_path (для текущего каталога используйте dir_path = ".").

ОПИСАНИЕ

Это описание взято из man7.org ссылка

struct dirent *readdir(DIR *dirp);

readdir ()

Функция readdir() возвращает указатель на dirent structure, представляющий следующую запись каталога в потоке каталога, на который указывает dirp. Он возвращает NULL при достижении конца потока каталога или при возникновении ошибки . для получения дополнительной информации go перейдите по ссылке выше для man7.org .

#include <stdio.h> 
#include <dirent.h> 

int main(void) 
{ 
   /* de is Pointer for directory entry */
    struct dirent *de;  
    const char* dir_path = "C:/Users/me/Documents/Example";
    /*opendir() returns a pointer of DIR type.*/  
    DIR *dr = opendir(dir_path); 

    if (dr == NULL)  /* opendir returns NULL if couldn't open directory */
    { 
        printf("Could not open current directory" ); 
        return 0; 
    } 

    while ((de = readdir(dr)) != NULL){
        printf("%s\n", de->d_name); 
    }
    closedir(dr);     
    return 0; 
}

для windows os

для windows используйте файл заголовка: fileapi.h см. Документацию microsoft здесь: fileapi.h

на этот вопрос ответили ранее в SO по ссылке ниже с использованием функций FindFirstFile, FindNextFile и FindClose.

просмотрите ответ по ссылке: список каталога в windows на C языке программирования

...