案例研究:查找目录大小-java教程

首页 2024-07-10 02:02:47

递归方法能有效解决递归结构的问题。前面的例子可以很容易地解决,而不需要使用递归。这一节提出了一个不使用递归很难解决的问题。问题是找到目录的大小。目录的大小是目录中所有文件大小的总和。目录 d 可包括子目录。假设一个目录包含文件 f1, f2, ... , fm 和子目录 d1, d2, ... , dn ,如下图所示。

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

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

File类别可用于表示文件或目录,并获取文件和目录的属性。 File 这两种方法对解决这个问题非常有用:

  • length() 方法返回文件的大小。
  • listFiles()方法返回目录File对象的数组。
下面的代码给出了一个程序,提示用户输入目录或文件并显示其大小。

如果

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

如果输入不正确或不存在,目录会发生什么?程序将检测到它不是目录并调用它

file.length()(第27行),它回来了0。因此,在这种情况下,getSize方法将返回0.

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

以上是案例研究:查找目录大小的详细内容,请关注其他相关文章!


p