package cn.itcast.test2;
import java.io.File;
import java.util.Scanner;
public class Test3 {
/**
* @param args
* 3,从键盘接收一个文件夹路径,统计该文件夹大小
*/
public static void main(String[] args) {
File dir = getDir();
System.out.println(getFileLen(dir));
}
public static long getFileLen(File dir) {
File[] subFiles = dir.listFiles(); //获取到dir路径下的所有的文件夹和文件
long len = 0;
for (File subFile : subFiles) { //遍历数组
if(subFile.isFile()) { //如果是文件
len = len + subFile.length(); //计算文件的大小累加
}else { //否则
len = len + getFileLen(subFile); //递归调用方法,计算文件夹的大小
}
}
return len;
}
public static File getDir() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个文件夹路径:");
while(true) {
String line = sc.nextLine();
File dir = new File(line);
if(!dir.exists()) {
System.out.println("您输入文件夹路径不存在,请重新输入一个文件夹路径:");
}else if(dir.isFile()) {
System.out.println("您输入的是文件路径,请重新输入一个文件夹路径:");
}else {
return dir;
}
}
}
}
|
|