我是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操作系统。始终存在且以只读方式安装。
因此,尺寸会有所不同,因为您要获得的尺寸不同。