我正在使用 Environment.getExternalStorageDirectory() 创建文件,在创建和存储文件之前我需要知道是否有足够的可用空间。
如果您可以引用 Android Ref 文档,那也会很有帮助。
最佳答案
您必须使用 StatFs类(class)。这是从源代码到手机上的“设置”应用程序中如何使用它的示例。
if (status.equals(Environment.MEDIA_MOUNTED)) {
try {
File path = Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
long availableBlocks = stat.getAvailableBlocks();
mSdSize.setSummary(formatSize(totalBlocks * blockSize));
mSdAvail.setSummary(formatSize(availableBlocks * blockSize) + readOnly);
mSdMountToggle.setEnabled(true);
mSdMountToggle.setTitle(mRes.getString(R.string.sd_eject));
mSdMountToggle.setSummary(mRes.getString(R.string.sd_eject_summary));
} catch (IllegalArgumentException e) {
// this can occur if the SD card is removed, but we haven't received the
// ACTION_MEDIA_REMOVED Intent yet.
status = Environment.MEDIA_REMOVED;
}
关于android - 如何获取Android sdcard上的可用空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3686974/