gpt4 book ai didi

c - 为什么我使用 dirent 计算目录中现有文件的数量有误?

转载 作者:太空宇宙 更新时间:2023-11-04 01:04:28 25 4
gpt4 key购买 nike

我写了一个小函数,它接收一个文件夹的路径,并且应该返回其中的文件数。

出于某种原因,我的答案不正确:打印时我看到它打印了 ....

谁能告诉我为什么?减少 2 会解决问题吗?

代码如下:

    {
struct dirent *entry;
DIR *dirp;
int fileCount = 0;
char currPath[MAX_STR];
dirp = opendir(clientLocalPath);
printf(" ***** printing files!!!!! ********\n");
while((entry = readdir(dirp)) != NULL)
{
strcpy(currPath, entry->d_name);
printf("%s\n",currPath);
fileCount++;

}
closedir(dirp);
return fileCount;
}

最佳答案

这种行为是完全正常的。 ... 分别表示当前目录和父目录。如果你想忽略它们并考虑你的 fileCount 变量的其余文件,你可以这样做:

while((entry = readdir(dirp)) != NULL)
{
if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0)
printf("\0");
else
{
strcpy(currPath, entry->d_name);
printf("%s\n",currPath);
fileCount++;
}
}

关于c - 为什么我使用 dirent 计算目录中现有文件的数量有误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27148841/

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