Java中利用递归计算文件夹下所有文件的总大小

需求描述:从键盘接收一个文件夹路径,获得该文件夹大小并输出到控制台。

代码实现:

import java.io.File;
import java.util.Scanner;

public class Demo934 {


    public static void main(String[] args) {
        //创建扫描器
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入您要查询的文件夹的绝对路径(格式为: 盘符:\\文件夹名\\子文件夹名...)");
        //定义变量保存用户输入的文件夹路径
        String path = sc.next();
        //调用方法
        long fileSize = getFileSize(path);
        System.out.println("您查询的"+path+"文件夹下的文件大小为"+(fileSize/1024/1024)+"MB");
    }

    //创建方法获取指定文件夹下的文件大小并将其打印出来,参数为文件夹绝对路径,返回值文件的大小
    public static long getFileSize(String file) {
        //创建文件对象
        File f = new File(file);
        if (f.exists() && f.isDirectory()) {//文件夹存在
            //获取文件夹的文件的集合
            File[] files = f.listFiles();
            long count =0;//用来保存文件的长度
            for (File file1 : files) {//遍历文件集合
                if (file1.isFile()) {//如果是文件
                    count += file1.length();//计算文件的长度
                } else {
                    count += getFileSize(file1.toString());//递归调用
                }

            }
            return count;
        }else {
            System.out.println("您查询的文件夹有误");
            return 0;
        }
    }

}

控制台运行效果:

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值