public static void main(String[] args) {
//从键盘接收一个文件夹路径,统计该文件夹大小
File dir = getDir();
System.out.println(getFileLength(dir));
}
//键盘录入一个文件夹,判断该文件夹
public static File getDir() {
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
System.out.println("请录入一个文件夹路径");
//定以一个无限循环
while(true) {
String line = sc.nextLine();
//将录入的字符串封装成一个File对象
File dir = new File(line);
//判断文件夹并返回
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 if (subFile.isDirectory()) {
len = len + getFileLength(subFile);
}
}
return len;
}
|
|