首页 > 解决方案 > 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来自哪里。我只想知道我的应用程序还剩下多少可用存储空间来将缩略图图像保存到本地私有存储空间。

标签: androidlocal-storage

解决方案


推荐阅读