0

可能重复:
Android SD 卡可用空间

在某些设备上,外部 sdcard 安装在 /mnt/sdcard/tflash 中。现在我需要找出外部 sdcard 上有多少可用空间。

我无法测试它,所以我不确定以下是否返回 /mnt/sdcard/tflash 的大小而不是 /mnt/sdcard

        StatFs stat = new StatFs("/mnt/sdcard/tflash");
        long blockSize = stat.getBlockSize();
        long totalBlocks = stat.getBlockCount();
        return totalBlocks * blockSize;

任何提示如何找到 /mnt/sdcard/tflash 或 /mnt/sdcard/external_sd 的可用空间

4

2 回答 2

3

不幸的是,Android 并没有真正意义上的“外置 sd 卡”的概念,实际上,他们的外置存储通常指的是人们通常认为是内部存储器的东西(比如设备内置的 8gb!)

Environment.getExternalStorageState() returns path to internal SD mount point like "/mnt/sdcard"

Environment.getExternalStorageDirectory() 是设备制造商认为的“外部存储”。有时这是真正的可移动存储,有时不是!

我讨厌打破泡沫,但可能没有办法,只能手动检查 /mnt/sdcard/external_sd 之类的路径,并检查它们是否存在,然后检查大小。这就是我最终为我的应用程序所做的事情:(

于 2012-10-09T19:10:57.413 回答
0

尝试

StatFs st = new StatFs(Environment.getExternalStorageDirectory().getPath());

long sdcardSize = (long) st.getBlockSize() * (long) st.getBlockCount();
于 2012-10-09T19:18:53.833 回答