【问题标题】:Summing File Sizes in a Tree Modeling Files and Directories对树建模文件和目录中的文件大小求和
【发布时间】:2021-03-30 18:46:30
【问题描述】:

我有两个类应该代表文件和目录(如计算机中的文件和目录)。 File 类保存有关文件的信息,例如名称和大小(在此处使用 getSize() 访问),Directory 类有两个保存子文件和子目录的列表。

基本上,我正在尝试递归地遍历并累加给定Directory(及其子目录)中所有文件的大小。到目前为止,这是我的代码:

public int size(Directory localDirect){
    int sum = 0;
    for (File file : this.files){
        sum += file.getSize();
    }
    for (Directory directory : localDirect.directories){
        sum += size(directory);
    }
    return sum;
}

当我运行它时,每次都会得到一个 0,与实际文件大小无关。我的第一个猜测是,由于我在每个方法调用中将sum 设置为 0,因此每次都将其重置为 0。但是,当我手动遵循逻辑时,我无法弄清楚为什么会重置 sum,因为在方法开始添加尺寸之前它被设置为 0。

任何人都可以看到我缺少什么或如何将其更改为更好地工作吗?

【问题讨论】:

    标签: java directory tree sum


    【解决方案1】:

    哎呀!愚蠢的错误,容易解决!在第一个增强的 for 循环中应该是 localDirect.files 而不是 this.files。问题已解决。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-07
      • 1970-01-01
      • 2012-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-22
      • 1970-01-01
      相关资源
      最近更新 更多