递归计数

时间:2014-11-02 02:20:02

标签: c unix recursion directory

我需要编写一个程序,该程序从用户获取根目录和最小文件大小,然后计算所有大于用户在所有子目录中输入的大小的文件。

由于某种原因,我的递归只计算当前工作目录中的文件,而不计算子目录中的文件。关于如何解决这个问题的任何线索?它正确计算工作目录中的文件数。

1 个答案:

答案 0 :(得分:0)

递归调用函数时,需要正确指定路径。 dentry->d_name仅指文件名;它不包含它所属的目录名。

否则,它将尝试递归到可能不存在的目录中。 (或者,如果有一个名称与父目录相同的目录,将尝试无限地递归到同一目录中。)

char path[PATH_MAX];

....

snprintf(path, sizeof path, "%s/%s", fileName, dentry->d_name);
countFiles(path, count, size);