确定已安装的外部SD卡的可用空间

时间:2012-10-09 19:02:42

标签: android

  

可能重复:
  Android SD card free space

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

我无法测试,所以我不确定以下是否返回/ 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的空闲空间

2 个答案:

答案 0 :(得分:3)

不幸的是,Android确实没有真正的“外部SD卡”的概念,事实上,他们的外部存储通常被称为人们通常认为是内部存储器的东西(比如嵌入设备的8gb!)

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

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

我讨厌破坏泡泡,但是除了手动检查像/ mnt / sdcard / external_sd之类的路径,检查它们是否存在,然后检查大小之外,没有办法。这就是我最终为我的应用做的事情:(

答案 1 :(得分:0)

尝试

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

long sdcardSize = (long) st.getBlockSize() * (long) st.getBlockCount();