用Java统计文件夹大小:
public static long getDirSize(File dir) {
if (dir == null) {
return 0;
}
if (!dir.isDirectory()) {
return 0;
}
long dirSize = 0;
File[] files = dir.listFiles();
for (File file : files) {
if (file.isFile()) {
dirSize += file.length();
} else if (file.isDirectory()) {
dirSize += file.length();
dirSize += getDirSize(file); // 如果遇到目录则通过递归调用继续统计
}
}
return dirSize;
}
也可以返回以Mb或Gb为单位的
public static String getDirSize(File dir) {
double size = 0;
........
size = (dirSize + 0.0) / (1024 * 1024);
DecimalFormat df = new DecimalFormat("0.00");// 以Mb为单位保留两位小数
String filesize = df.format(size);
return filesize;
}