说明:File.length()仅仅用于获得某个文件的大小,单位为bytes
如果需要获得某个文件夹下所有文件大小,则需用到递归,依次获得目录下文件、子目录下文件的大小,代码示例如下:
public static double getDirSize(File file) {
//判断文件是否存在
if (file.exists()) {
//如果是目录则递归计算其内容的总大小
if (file.isDirectory()) {
File[] children = file.listFiles();
double size = 0;
for (File f : children)
size += getDirSize(f);
return size;
} else {//如果是文件则直接返回其大小,以“兆”为单位
double size = (double) file.length() / 1024 / 1024;
return size;
}
} else {
System.out.println("文件或者文件夹不存在,请检查路径是否正确!");
return 0.0;
}
}
调用方式如下:
double totalSize = getDirSize(new File("f:\\电影"));
推荐一个自己业余时间开发的网盘搜索引擎,360盘搜(www.360panso.com)