gpt4 book ai didi

c - 我无法打开某个文件夹的子文件夹

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:06:00 28 4
gpt4 key购买 nike

<分区>

void count(char *dir, int levels, int *filecount, int *dircount) {
struct dirent *dp;
DIR *fd;

if ((fd=opendir(dir))==NULL) {
fprintf(stderr, "count: can't open %s\ncount stopped.", dir);
exit(0);
}

while((dp = readdir(fd))!=NULL){
if(!strcmp(dp->d_name, ".")||!strcmp(dp->d_name, ".."))
continue;
if(dp->d_type==DT_REG){ /* Regular file */
(*filecount)++;
}
if(dp->d_type==DT_DIR){ /* Directory */
(*dircount)++;
if(levels>0){
count(dp->d_name,levels-1,filecount,dircount);
}
}
}
closedir(fd);
}

这是我试图在 C 中实现的一个函数,它递归地计算某个文件夹中目录和文件的数量,仅针对某个深度

示例:我有一个文件夹“a”和 2 个子文件夹“b”、“c”,我写了级别 1,它只会计算“a”中的文件,以及“a/b”和“a”中的文件/c",但它不会进一步查找,例如,"a/b/d"。

我不知道为什么,但是当我调用 main count("a",1,files,directories);它打开“a”,计算其中的内容,但无法打开“b”和“c”,并在屏幕上打印来自 fd=opendir(dir) 的 fprintef stderr;

有人知道为什么吗?

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