使用File类计算文件夹大小(递归方式)

需求:

   查看一个文件夹的大小

package com.etime6;

import java.io.File;
import java.util.ArrayList;

public class fileSize01 {
    //测试
    public static void main(String[] args) {
        File file = new File("D:"+File.separator+"SteamLibrary");
        System.out.println(fileSize(file));
    }

    /**
     * 文件大小查看
     * @param file 需要查看的文件
     * @return
     */
    public static long fileSize(File file){
        //返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件
        File[] filesArrey = file.listFiles();
        long s = 0;
        for (File file01: filesArrey) {
            //判断此文件是否是一个标准文件(是文件夹返回值为false,不是则true)
            if(file01.isFile()){
                //计算文件大小
                long length = file01.length();
                s += length;
            }
            //判断次文件是否是一个文件夹是则返回true
            if(file01.isDirectory()){
                //使用递归算法继续传入File对象计算大小,累加入s中
                s += fileSize(new File(file, file01.getName()));
            }
        }
        return s;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值