如果最正确,迭代遍历盘符的文件夹大小,或者是类型的问题
[Java] 纯文本查看 复制代码 package com.heima.file类;
import java.io.File;
import java.util.Scanner;
public class Test01_迭代查找文件夹 {
/**
* 需求:从键盘接收一个文件夹路径,统计该文件夹大小
*/
public static void main(String[] args) {
//获取键盘录入的文件夹路径对象
File dir = getDir();
//获取文件夹大小
long fileLength = getFileLength(dir);
System.out.println(fileLength);
}
//这个方法的功能是获取文件夹大小
public static long getFileLength(File dir) {
//获取该路径下的所有文件夹以及文件的集合
File[] listFiles = dir.listFiles();
//设置初始化文件夹大小
long len = 0;
//当集合不为空的时候
if (listFiles != null) {
//遍历集合
for (File file : listFiles) {
//判断是存在的,并且是文件的时候
if(file.exists() && file .isFile()) {
//就把文件的大小统计起来
len = len +file.length();
}else {
//递归调用
len = len +getFileLength(file);
}
}
}
//返回文件大小的值
return len;
}
//这个方法的功能是为了获取键盘录入的文件夹路径的对象
public static File getDir() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个文件夹路径:");
while (true) {
//接收录入的数据
String line = sc.nextLine();
//把接收到的数据封装成File对象
File file = new File(line);
if( ! file.exists()) { //判断是否存在
System.out.println("您输入的路径不存在,请重新输入:");
}else if (file.isFile()) { //判断是否是文件
System.out.println("您输入的是文件路径,请重新输入:");
}else { //又存在,又不是文件,那肯定就是文件夹了
return file;
}
}
}
}
|