android - Android 存储空间显示不正确的数量
问题描述
我对使用本地私有存储的应用程序的可用存储空间进行了测试。无论我调用什么方法,它都不会显示 Android 文件浏览器或 Windows 浏览器显示的内容。
这是我的代码:
public static long getAvailableMemory()
{
Log.i(TAG, "getAvailableMemory: start");
long bytesAvailable = 0;
try
{
StatFs stat;
// Root
stat = new StatFs(Environment.getRootDirectory().getAbsolutePath());
bytesAvailable = stat.getAvailableBytes();
Log.d(TAG, "Root.Absolute.AvailableBytes = " + bytesAvailable);
bytesAvailable = stat.getFreeBytes();
Log.d(TAG, "Root.Absolute.FreeBytes = " + bytesAvailable);
// Data
stat = new StatFs(Environment.getDataDirectory().getAbsolutePath());
bytesAvailable = stat.getAvailableBytes();
Log.d(TAG, "Data.Absolute.AvailableBytes = " + bytesAvailable);
bytesAvailable = stat.getFreeBytes();
Log.d(TAG, "Data.Absolute.FreeBytes = " + bytesAvailable);
// External
stat = new StatFs(Environment.getExternalStorageDirectory().getAbsolutePath());
bytesAvailable = stat.getAvailableBytes();
Log.d(TAG, "External.Absolute.AvailableBytes = " + bytesAvailable);
bytesAvailable = stat.getFreeBytes();
Log.d(TAG, "External.Absolute.FreeBytes = " + bytesAvailable);
// Local
File file = new File(Settings.pathToThumbnails);
bytesAvailable = file.getUsableSpace();
Log.d(TAG, "File.UsableSpace = " + bytesAvailable);
}
catch (Exception e)
{
e.printStackTrace();
}
// Log.d(TAG, "getAvailableMemory: bytesAvailable = " + bytesAvailable);
return bytesAvailable;
}
安卓文件浏览器:1.65GB
Windows 文件浏览器:1,745,756,160 (1.62)
运行应用程序,记录:
12-24 08:06:58.966 11835-11835 D/*~MAIN ACTIVITY: Root.Absolute.AvailableBytes = 209154048
12-24 08:06:58.966 11835-11835 D/*~MAIN ACTIVITY: Root.Absolute.FreeBytes = 209154048
12-24 08:06:58.966 11835-11835 D/*~MAIN ACTIVITY: Data.Absolute.AvailableBytes = 1769209856
12-24 08:06:58.966 11835-11835 D/*~MAIN ACTIVITY: Data.Absolute.FreeBytes = 1774452736
12-24 08:06:58.966 11835-11835 D/*~MAIN ACTIVITY: External.Absolute.AvailableBytes = 1748234240
12-24 08:06:58.966 11835-11835 D/*~MAIN ACTIVITY: External.Absolute.FreeBytes = 1748234240
12-24 08:06:58.966 11835-11835 D/*~MAIN ACTIVITY: File.UsableSpace = 1769205760
我不确定使用什么实际数字来测试我的应用程序。我不知道Android报告的1.65 GB来自哪里。我只想知道我的应用程序还剩下多少可用存储空间来将缩略图图像保存到本地私有存储空间。
解决方案
推荐阅读
- groovy - Grails4在编译groovy时内存不足
- bash - 挖掘命令 repatated SERVER 值
- ruby-on-rails - 如何设置 ActiveStorage 以允许公共和私人附件
- perl - 需要获取指向符号链接的值
- c++ - 将两个单独的缓冲区组合成一个复杂的缓冲区
- sql - 在主查询中过滤子查询的值
- typescript - 如何实现自定义 Apollo Server KeyValueCache?
- python - 如何从 form_valid 中的克隆模型实例中获取 pk 以在 UpdateView 中的 get_success_url 中使用?
- javascript - 如何通过其 url 阻止特定的 ajax 调用?
- ffmpeg - 在具有少量帧的 H.264 原始流中添加当前时间作为时间戳