File类的递归练习1:统计文件夹的大小
需求
从键盘接收一个文件夹路径,统计该文件夹大小
代码
public class Test01 {
//从键盘接收一个文件夹路径,统计该文件夹大小
public static void main(String[] args) {
File f = getDir();
long len = getFileLength(f);
System.out.println("该文件夹总大小:" + len + "byte.");
}
public static File getDir() {
Scanner sc = new Scanner(System.in);
File f = null;
while (true) {
System.out.println("请输入文件夹路径:");
String path = sc.nextLine();
f = new File(path);
if (f.isDirectory()) {
return f;
} else if(!f.exists()){
System.out.println("该路径不存在,请重新输入。");
}else if (f.isFile()) {
System.out.println("该路径为文件,请输入文件夹路径。");
}
}
}
public static long getFileLength(File f) {
long len = 0;
File[] subFiles = f.listFiles();
for (File file : subFiles) {
if (file.isFile()) {
len += file.length();
} else {
len += getFileLength(file);
}
}
return len;
}
}