递归统计文件夹大小

Posted liqiliang1437

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了递归统计文件夹大小相关的知识,希望对你有一定的参考价值。

递归统计文件夹大小

  1. 创建键盘录入对象Scanner

  2. 定义字符串接收用户输入的文件夹路径

  3. 根据文件夹路径创建文件对象

  4. 定义一个方法calculate用来计算指定文件夹的大小,接收文件参数,返回long类型数值表示文件夹的大小。

  5. 调用calculate方法传入文件夹对象,在该方法内部获得文件夹中所有文件,得到一个文件数组,定义一个变 量size累加每一个文件的大小,遍历文件数组,判断是否是文件,如果是文件则获得文件大小并累加到变量 size中,如果是文件夹,继续递归调用当前方法。

package com.test.Test02;

import java.io.File;

public class Test04 {
    public static void main(String[] args) {
        //获取一个文件夹大小并输出到控制台
        long l = calculate(new File("E:/abc"));

        System.out.println("l = " + l);
        //l = 52925438
        //    52929534
    }

    private static long calculate(File dir){
        //定义变量累积每一个文件的大小
        long size = 0;
        File[] files = dir.listFiles();
        for (File file : files) {
            if(file.isFile()){
                //是文件
                size += file.length();
            }else {
                //是文件夹
                size += calculate(file);
            }
        }
        return size;
    }
}

自己瞎捉摸出来的

package com.test.Test02;

import java.io.File;

public class Test05 {
    public static void main(String[] args) {
        addUp(new File("E:/abc"));
    }

    private static long size = 0;
    private static void addUp(File file) {
        if(file.isDirectory()){
            File[] files = file.listFiles();
            for (File f : files) {
                addUp(f);
            }
        }

        //不是文件夹,计算大小
        size += file.length();
        System.out.println("size = " + size);


    }
}

以上是关于递归统计文件夹大小的主要内容,如果未能解决你的问题,请参考以下文章

JavaEE基础(二十三)/递归

递归求一个文件夹大小

php 统计某个目录中所有文件的大小

递归的练习。

WC 代码统计 java

linux下如何查看文件夹大小?硬盘使用情况?内存使用情况?