文件夹的大小,返回 0
package fortest;
import java.io.File;
import java.util.Scanner;
public class test {
public static void main(String[] args) {
File iFile = getDir();
System.out.println(getFileSize(iFile));
}
/*
* 返回一个输入的文件夹
* 1. 获得输入路径
* 2. 判断是文件夹
* 3. 是文件夹返回
* 4. 不是文件夹,重新输入路径
*/
public static File getDir() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入文件夹路径:");
while(true) {
String line = scanner.nextLine();
File file = new File(line);
if(!file.exists()) {
System.out.println("你输入的文件夹路径不存在");
}else if(file.isFile()){
System.out.println("你输入的是一个文件");
}else {
return file;
}
}
}
/*
* 参数:文件夹
* 返回值: 文件大小或递归调用
* 0. 定义文件大小
* 1. 获得文件集合
* 2. 遍历文件
* 3. 是文件统计
* 4. 不是文件,递归调用、
* 5. 返回大小
*
*
*/
public static long getFileSize(File dir) {
long file_size = 0;
File [] list_files = dir.listFiles();
for (File file : list_files) {
if(file.isFile()) {
file_size += file.length();
}else {
file_size += getFileSize(file);
}
}
return file_size;
}
}