案例研究:查找目录大小-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
MySQL连接就这么简单!本地远程、编程语言连接方法一网打尽
还在为MySQL日期计算头疼?这份加一天操作指南能解决90%问题
MySQL日志到底在哪里?Linux/Windows/macOS全平台查找方法在此
MySQL数据库管理工具全景评测:从Workbench到DBeaver的技术选型指南
MySQL密码忘了怎么办?这份重置指南能救急,Windows/Linux/Mac都适用
你的MySQL为什么经常卡死?可能是锁表在作怪!快速排查方法在此
MySQL单表卡爆怎么办?从策略到实战,一文掌握「分表」救命技巧
清空MySQL数据表千万别用错!DELETE和TRUNCATE这个区别可能导致重大事故
你的MySQL中文排序一团糟?记住这几点,轻松实现准确拼音排序!
别再混淆Hive和MySQL了!读懂它们的天壤之别,才算摸到大数据的门道