java - file.getTotalSpace() 返回实际值的两倍

标签 java android file

所以我有一个 root 的 android 4.0.3 设备。每当我将某些东西安装到实际上是内部的“sd 卡”时,它也会创建这个/mnt/secure/asec 分区。以下是 df 的部分输出。

    /mnt/sdcard              1G    65M     1G   4096
    /mnt/secure/asec         1G    65M     1G   4096

现在,如果我尝试执行以下代码。

    File f = new File("/mnt/sdcard");
    long div = (1024*1024);
    long d = f.getTotalSpace()/div;
            Log.i("Capacity",String.valueOf(d));

它显示的值是 2Gb。这里发生了什么?为什么 android 4.0.3 仍然为这些安装在“sd 卡”上的 apk 创建安全挂载点?这不是 JellyBean 独有的功能吗?

最佳答案

What is going on here?

尝试使用 StatFs而不是 getTotalSpace() 并查看您是否获得更好的结果。

And why is android 4.0.3 creating a secure mount point for these apks install on the 'sd card' anyway?

因为自 API 级别 8 中引入该功能以来,它已成为 Android 中安装到 SD 的一部分。

关于java - file.getTotalSpace() 返回实际值的两倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12758026/

相关文章:

java - 带泛型参数的函数 java

Java - 如何使用Gson解析json文件

java - 通过属性读取器设置 TextView 的文本

c - 如何使用 fputs C 在 .txt 上插入变量

c - 二进制文件写入/读取问题

javascript - 根据文件扩展名显示文件图标

Java 8 List<V> 到 Map<K, V> 覆盖重复键

java - 使用完全相同的图片进行空分类

Android 应用程序和计时器

android - 是否有必要在单独的线程中查找获取位置?