Java递归调用File类统计文件夹大小

2025-07-31 08:03:12

1、首先创建键盘录入对象,我们需要从键盘接收一个文件夹路径,该文件夹路径必须是本机存在的文件夹,并且要是文件夹,不能是文件。我们找到一个需要统计的文件夹,可通过右击属性查看文件夹的位置。

Java递归调用File类统计文件夹大小

2、定义一个无线循环,因为在键盘录入的时候可能会录入正确的,也可能会录入错误的,该无线循环有结束条件,直到输入正确的为止,并将键盘录入的结果存储并封装成一个File类对象。

Java递归调用File类统计文件夹大小

3、对File对象判断,若符合条件,则将文件夹路径对象返回;若不符合条件,则继续录入,直到录入正确的文件夹路径为止。

Java递归调用File类统计文件夹大小

4、统计该文件夹大小,首先定义一个求和变量用于存放文件夹大小,使用listFiles()方法获取该文件夹下所有的文件和文件夹数组,遍历该数组。若判断是文件就计算大小并累加,若判断是文件夹就递归调用(因为文件夹的大小是不能直接获取的,取到的是0,后面将会为大家验证)。

Java递归调用File类统计文件夹大小

5、以上两个方法编辑完成后,我们来验证一下是否能够实现功能。在main方法中调用上述两个方法,因为main方法是程序的入口,在main方法上右击Run As--> Java Application即可,在控制台输入一个文件夹按回车Enter键,即可输出文件夹大小,如下图所示。

Java递归调用File类统计文件夹大小

6、下面我们来验证一下是否能直接获取文件夹的大小,而不用递归调用的方式。通过新建一个有参的File类对象,参数为上一步骤的文件夹路径,直接调用length()方法,结果如下图所示,不管执行多少遍结果均为0,因此可以证明文件夹是不可直接获取大小的。

Java递归调用File类统计文件夹大小
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢