gpt4 book ai didi

c - 如何列出文件/目录的数量

转载 作者:行者123 更新时间:2023-11-30 17:21:09 24 4
gpt4 key购买 nike

我编写了这个函数,它实际上列出了给定目录的内容。但是,我想让它只告诉我有多少个文件和有多少个目录。我已经尝试过这样的事情,但它并没有真正起作用:

if(dir->d_type == D_DIR)
directories++;

这是我的代码。我该如何修改它:

#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
#include <sys/stat.h>

int main (void) {


DIR *d = opendir (".");
struct dirent *dir;

if (d != NULL) {

int files, directories = 0;

while(dir=readdir(d))
puts(dir->d_name);//Prints the actual names of the entries

//Closing the directory
(void) closedir (d);

} else
perror ("Couldn't open the directory");

return 0;
}

最佳答案

我想到了。这是我的代码供将来引用(如果其他人需要):

#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
#include <sys/stat.h>

int main (void) {

DIR *d = opendir (".");
struct dirent *dir;

if (d != NULL) {

int files, directories = 0;

while((dir=readdir(d)) != NULL) {

if (dir->d_type == DT_REG)
files++;
if(dir->d_type == DT_DIR)
directories++;
}

//Closing the directory
(void) closedir (d);

printf("%i Files and %i directories\n\n", files, directories);

} else
perror ("No such directory");

return 0;
}

关于c - 如何列出文件/目录的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28376570/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com