Android 通过getDataDirectory()和getRootDirectory()检查可用空间不相同

Android 通过getDataDirectory()和getRootDirectory()检查可用空间不相同,android,android-storage,Android,Android Storage,我试图通过使用getDataDirectory().getPath()和getRootDirettory().getAbsolutePath()检查android手机上的可用空间,我得到了这些结果 使用getRootDirectory().getAbsolutePath() 日志: W/路径:/system W/路径:/system W/按环境列出的可用字节。getRootDirectory()。getAbsolutePath():: 91 使用getRootDirectory().getPa

我试图通过使用
getDataDirectory().getPath()
getRootDirettory().getAbsolutePath()
检查android手机上的可用空间,我得到了这些结果

使用
getRootDirectory().getAbsolutePath()

日志:

W/路径:/system

W/路径:/system

W/按环境列出的可用字节。getRootDirectory()。getAbsolutePath():: 91


使用
getRootDirectory().getPath()

日志:

W/路径:/data

W/路径:/data

W/按环境列出的可用字节。getDataDirectory().getPath()::21426 MB或20.924 GB

但当我从手机中的设置中查看可用空间时,仅显示:20.34 GB

检查手机可用空间的最佳准确方法是什么?为什么
getRootDirectory().getAbsolutePath()
getDataDirectory.getPath()
不提供相同的空间

检查可用空间的最佳准确方法是什么

最好使用检查可用内存

内部存储器中有

/data分区:仅包含用户数据
//getDataDirectory()

/system分区:包含核心Android操作系统
//getRootDirectory()

为什么选择getRootDirectory().getAbsolutePath()和 getDataDirectory().getPath()不提供相同的空间

因为它们是不同的目录

你可以用

  final StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath());
  long totalinternal = (long) stat.getBlockSize() * (long) stat.getBlockCount();
  long available = (long) stat.getBlockSize() * (long) stat.getAvailableBlocks();
检查可用空间的最佳准确方法是什么

最好使用检查可用内存

内部存储器中有

/data分区:仅包含用户数据
//getDataDirectory()

/system分区:包含核心Android操作系统
//getRootDirectory()

为什么选择getRootDirectory().getAbsolutePath()和 getDataDirectory().getPath()不提供相同的空间

因为它们是不同的目录

你可以用

  final StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath());
  long totalinternal = (long) stat.getBlockSize() * (long) stat.getBlockCount();
  long available = (long) stat.getBlockSize() * (long) stat.getAvailableBlocks();
  final StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath());
  long totalinternal = (long) stat.getBlockSize() * (long) stat.getBlockCount();
  long available = (long) stat.getBlockSize() * (long) stat.getAvailableBlocks();