”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 案例研究:查找目录大小

案例研究:查找目录大小

发布于2024-08-09
浏览:264

递归方法对于解决递归结构的问题非常有效。无需使用递归即可轻松解决前面的示例。本节提出了一个不使用递归很难解决的问题。问题是找到目录的大小。目录的大小是目录中所有文件大小的总和。目录 d 可以包含子目录。假设一个目录包含文件f1、f2、...、fm和子目录d1、d2、...、dn,如下图所示。

Image description

目录的大小可以递归定义如下:

尺寸(d) = 尺寸(f1) 尺寸(f2) ... 尺寸(fm) 尺寸(d1) 尺寸(d2) ... 尺寸(dn)

File类可用于表示文件或目录并获取文件和目录的属性。 File 类中的两个方法对于解决此问题很有用:

  • length() 方法返回文件的大小。
  • listFiles()方法返回目录下的File对象数组。

下面的代码给出了一个程序,提示用户输入目录或文件并显示其大小。

Image description

如果file对象表示一个目录(第20行),则递归调用目录中的每个子项(文件或子目录)以获得其大小(第23行)。如果 file 对象代表一个文件(第 26 行),则获取文件大小并将其添加到总大小中(第 27 行)。

如果输入不正确或不存在的目录会发生什么?程序将检测到它不是目录并调用 file.length()(第 27 行),返回 0。因此,在这种情况下, getSize 方法将返回 0.

为了避免错误,测试所有案例是一个很好的做法。例如,您应该测试程序的文件输入、空目录、不存在的目录和不存在的文件。

版本声明 本文转载于:https://dev.to/paulike/case-study-finding-the-directory-size-2946?1如有侵犯,请联系[email protected]删除
最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3