今天重装了下系统,换回了win10,个人觉得win10给人一种很清爽舒服的感觉,然后桌面就是这个样子的:
好了,回归正题,我们今天做下递归的题目,题目是输入一个路径,计算出该路径下文件夹的大小。
代码如下:
package day01;
import java.io.File;
import java.util.Scanner;
public class FileLength{
public static void main(String[] args) {
File dir = getDir();
System.out.println(getFileLength(dir));
}
//获取输入的文件夹路径
public static File getDir(){
//1、创建键盘录入对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入文件夹路径:");
//2、创建无限循环
while(true){
String line = sc.nextLine();
//3、将输入的路径封装为File对象
File dir = new File(line);
//4、判断路径是否存在,是否是文件路径
if (!dir.exists()) {
System.out.println("你输入的路径不存在,请重新输入");
}else if (dir.isFile()) {
System.out.println("你输入的是文件路径,请输入一个文件夹路径");
}else{
return dir;
}
}
}
//计算文件夹的大小
public static long getFileLength(File dir){
long len = 0;
File[] subFiles = dir.listFiles();
for (File subFile :subFiles ) {
//判断是否是文件
if (subFile.isFile()) {
len = len + subFile.length();
}else{
len = len + getFileLength(subFile);
}
}
return len;
}
}
最后我把jdk1.8的API文档分享一下,大家需要的自取。链接:https://pan.baidu.com/s/14ptTDT_jvPP9rUnkptfJ2g
提取码:709u