求文件夹大小
求文件夹大小不能像求标准文件一样直接.lenght求,所以我们用到了其他的方法;
主要构思
只有标准文件才可以去用lenght去求文件的大小,思路:
1:所以我们去判断文件是否存在;
2:判断是否为标准文件,如果是标准文件就可以直接得到文件的大小;
3;如果它不是一个标准文件,就把它转为一个文件类型的数组;
4;判断文件数组是否为空;
5;当文件数组不为空就去进行递归,调用本身;
6;定义一个计数器去存储递归得到的所有标准文件的长度,把所有标准文件的大小相加就可以得到整个文件夹的大小;
示例代码
package com.etime;
import java.io.File;
public class Test01 {
public static void main(String[] args) {
/**
* 1 求文件夹的大小
*/
File file = new File("D:" + File.separator + "abc");// 创建文件对象
long fileLenght = getFileLenght(file);
System.out.println(fileLenght);
}
public static long getFileLenght(File file) {
long len = 0;// 定义一个计数器,来存储递归的长度
if (file.exists()) {// 判断文件是否存在
if (file.isFile()) {// 判断文件是不是标准文件,如果是标准文件就直接求文件的长度
len = +file.length();
} else {// 不是标准文件则进入递归
File[] listFiles = file.listFiles();// 将文件转成文件数组进行递归求长度
if (listFiles != null) {// 判断文件数组是否为空,如果为空就没有进行递归的必要
for (File k : listFiles) {// 增强for循环得到的文件数组
// System.out.println(k.getName());
len += getFileLenght(k);// 进行递归,
}
}
}
} else {// 如果文件不存在则提示
System.out.println(file.getPath() + "文件不存在");
}
return len;
}
}