Android的manifest.xml文档中声名权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
判断SDcard是否可以用
public static boolean isSdCardExists() {
if (android.os.Environment.getExternalStorageState().equals(
android.os.Environment.MEDIA_MOUNTED)) {
return true;
} else {
Log.e(" ", "the Sdcard is not exists");
return false;
}
}
获取SD卡总大小
public static String getSdCardTotalSize() {
if (!isSdCardExists())
return "";
File path = Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getBlockCount();
return String.valueOf((availableBlocks * blockSize) / 1024 / 1024);
}
获取SD卡可用大小
public static String getSdcardAvailbleSize() {
if (!isSdCardExists())
return "";
File path = Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
return String.valueOf((availableBlocks * blockSize) / 1024 / 1024);
}
获取根目录路径
public static String getRootPath() {
if (!isSdCardExists())
return "";
return Environment.getExternalStorageDirectory().getPath();
}
获取根目录文件列表
public static File[] getRootFiles() {
if (getRootPath().equals(""))
return null;
List<File> files = new ArrayList<File>();
File file = new File(getRootPath());
return file.listRoots();
}