java递归求目录大小方法

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

//递归求目录大小
public class Test5_Digui {

public static void main(String[] args) {
//测试递归求目录大小

// TODO接收用户输入的文件路径
String path = new Scanner(System.in).nextLine();
File dir = new File(path);//封装成File对象
long total = size(dir);//调用size求和大小
System.out.println(total);
}
//创建size求总大小
private static long size(File dir) {
//1.列出文件夹下的所有资源
File[]fs = dir.listFiles();
long sum = 0;
//遍历数组
for(int i=0;i<fs.length;i++) {
//2.判断当前资源是文件吗?是就直接.length()求和;
if(fs[i].isFile()) {
sum=sum+fs[i].length();
}else if(fs[i].isDirectory()) {
//.判断当前资源是文件吗?开始重复123.......
sum=sum+size(fs[i]);//递归调用,在方法内部再调用方法体本身
}
}
return sum;
}

}

posted @ 2020-07-17 17:34  tmuchen  阅读(188)  评论(0)    收藏  举报