我正在开发一个android文件管理器应用程序。 等主要活动我想显示所有可用的存储类型,如内部存储和外部SD卡。获取内部和外部存储信息 - android
,所以我用这个代码,
public static boolean externalMemoryAvailable() {
return android.os.Environment.getExternalStorageState().equals(
android.os.Environment.MEDIA_MOUNTED);
}
public static long getAvailableInternalMemorySize() {
File path = Environment.getDataDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
return availableBlocks * blockSize;
}
public static long getTotalInternalMemorySize() {
File path = Environment.getDataDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
return totalBlocks * blockSize;
}
public static long getAvailableExternalMemorySize() {
if (externalMemoryAvailable()) {
File path = Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
return availableBlocks * blockSize;
} else {
return 0;
}
}
public static long getTotalExternalMemorySize() {
if (externalMemoryAvailable()) {
File path = Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
return totalBlocks * blockSize;
} else {
return 0;
}
}
但问题是,它给我相同的内存输出,用于内部和外部存储.. 实际上它给内部存储正确的答案。但外部SD卡错误。
我觉得我错在获得ext sd卡的路径。任何帮助? PLZ。
'但错误的外置SD card'。确实。您的代码中没有涉及外部SD卡的内容。 – greenapps
'它为我提供了同样的内存和外部存储输出.'。有趣。确认! – greenapps