Android:如何获取应用程序使用的存储空间

时间:2010-05-25 17:05:01

标签: android storage

我有一个应用程序,它在SDCard中创建了一个目录,我保存了照片。我想知道SDCard上有多少空间用于向用户显示该信息。

1 个答案:

答案 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

然而,您必须导入此库。我个人更愿意自己编写这个简短的方法。