无法计算Gingerbread中的文件夹大小(2.3)

时间:2013-11-28 12:50:18

标签: android

我正在使用“file.length()”在我的应用程序中计算文件夹大小。它在其他版本的Android O.S中运行良好。我以字节为单位获取文件夹大小。但问题是,当我为一个装有姜饼的设备运行相同的代码时,它总是显示我的大小为0字节。我无法理解这个问题。这是我的代码: -

File file1=new File(android.os.Environment.getExternalStorageDirectory(),"/.Gallery");

double total_length = file1.length();

请帮我解决这个问题,任何帮助都会很明显。

提前致谢。

1 个答案:

答案 0 :(得分:1)

来自android documentantion:

  

File.lenght():以字节为单位返回该文件的长度。如果文件不存在,则返回0。 未定义目录的结果

您可以使用它来计算目录长度:

public static long getFolderSize(File folderPath) {

    long totalSize = 0;

    if (folderPath == null) {
      return 0;
    }

    if (!folderPath.isDirectory()) {
      return 0;
    }

    File[] files = folderPath.listFiles();
    if(files != null){
        for (File file : files) {
          if (file.isFile()) {
            totalSize += file.length();
          } else if (file.isDirectory()) {
            totalSize += file.length();
            totalSize += getFolderSize(file);
          }
        }
    }
    return totalSize;
}