Мне нужно найти, сколько папок и сколько обычных файлов в каталоге. Я что-то пробовал, но даже не смог скомпилировать код. Я даже не знаю, верна моя программа или нет. Когда я пытался скомпилировать свой код, было два типа ошибок. Одна из них - ошибка: struct dirent не имеет члена с именем 'd_type' и необъявленного 'DT_DIR' (первое использование в этой функции, DT_REG необъявлено (первое использование в этой функции).
Я использую CodeBlocks с MinGW , если ошибка связана с моим компилятором; я должен использовать эту IDE.
Как исправить мой код?
#include <dirent.h>
#include <stdio.h>
#include <stdlib.h>
int
main(int argc, char *argv[])
{
int file_count = 0;
int dir_count = 0;
struct dirent * entry;
DIR *dp;
if (argc != 2)
{
printf("usage: give directory_name\n");
exit(-1);
}
if ((dp = opendir(argv[1])) == NULL)
{
printf("Error: can't open %s\n", argv[1]);
exit(-2);
}
while ((entry= readdir(dp)) != NULL){
if (entry->d_type == DT_REG)
file_count++;
else if (entry->d_type == DT_DIR)
dir_count++;
}
closedir(dp);
printf(" %d Number of file ", file_count);
printf(" %d Number of folders", dir_count);
exit(0);
}