我是Android的新手,我想在内部存储中找到可用的内存。我使用两个函数来查找可用内存,但是它们以长格式显示了两个不同的值。不知道为什么
这是我的代码:

1)getTIM()函数的结果是558628864

public String getTIM(){
    File path = Environment.getDataDirectory();
    StatFs stat = new StatFs(path.getPath());
    long blockSize = stat.getBlockSize();
    long totalBlocks = stat.getBlockCount();
    String str = Long.toString(blockSize * totalBlocks);
    return str;
}


2)ITMStr()函数的结果为914120704

public String ITMStr(){
    StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath());
    long blockCount = statFs.getBlockCountLong();
    long blockSize = statFs.getBlockSizeLong();
    long total = blockCount * blockSize;
    String str = Long.toString(total);
    return str;
}


哪个值正确?

最佳答案

根据reference


  公共静态文件getDataDirectory()
  
  API级别1中已添加返回用户数据目录。


_


  公共静态文件getRootDirectory()
  
  在API级别1中添加了“系统”分区的根目录,该目录包含
  核心Android操作系统。始终存在且以只读方式安装。


因此,尺寸会有所不同,因为您要获得的尺寸不同。

09-10 12:36
查看更多