递归统计文件夹大小
Posted liqiliang1437
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了递归统计文件夹大小相关的知识,希望对你有一定的参考价值。
递归统计文件夹大小
-
创建键盘录入对象Scanner
-
定义字符串接收用户输入的文件夹路径
-
根据文件夹路径创建文件对象
-
定义一个方法calculate用来计算指定文件夹的大小,接收文件参数,返回long类型数值表示文件夹的大小。
-
调用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);
}
}
以上是关于递归统计文件夹大小的主要内容,如果未能解决你的问题,请参考以下文章