我有一个应用程序,它在SDCard中创建了一个目录,我保存了照片。我想知道SDCard上有多少空间用于向用户显示该信息。
答案 0 :(得分:2)
我不确定它是否是最好的解决方案,但你可以这样做:
int totalSize = 0;
File root = new File("path to one of your file").getParentFile();
File[] files = root.listFiles();
for (File file: files) {
totalSize = totalSize + file.length();
}
然后totalSize包含目录中所有文件的总和(以字节为单位)。根据您的目录结构(例如,是否有任何子目录?),您必须调整代码。
编辑: 经过一些研究后,我几乎可以肯定java中没有直接返回目录大小的方法。参见例如这个链接: http://forums.sun.com/thread.jspa?threadID=640296
但是在这个链接中http://www.codemiles.com/java/get-directory-size-in-java-t1242.html有一个上面提到的代码的递归版本来计算任何子目录(如果可用)。
还有一个小型图书馆可以做你想做的事情:
http://commons.apache.org/io/api-release/index.html
然而,您必须导入此库。我个人更愿意自己编写这个简短的方法。