版權聲明:本文爲Mr.release原創文章,轉載請標明出處
封裝SDCard工具類 SDCardUtils
public class SDCardUtils {
/**
* 獲取SD卡的狀態
*/
public static String getState() {
return Environment.getExternalStorageState();
}
/**
* SD卡是否可用
*
* @return 只有當SD卡已經安裝並且準備好了才返回true
*/
public static boolean isAvailable() {
return getState().equals(Environment.MEDIA_MOUNTED);
}
/**
* 獲取SD卡的根目錄
*
* @return null:不存在SD卡
*/
public static File getRootDirectory() {
return isAvailable() ? Environment.getExternalStorageDirectory() : null;
}
/**
* 獲取SD卡的根路徑
*
* @return null:不存在SD卡
*/
public static String getRootPath() {
File rootDirectory = getRootDirectory();
return rootDirectory != null ? rootDirectory.getPath() : null;
}
/**
* 獲取sd卡路徑
*
* @return Stringpath
*/
public static String getSDPath() {
File sdDir = null;
boolean sdCardExist = Environment.getExternalStorageState()
.equals(Environment.MEDIA_MOUNTED); //判斷sd卡是否存在
if (sdCardExist) {
sdDir = Environment.getExternalStorageDirectory();//獲取跟目錄
}
return sdDir.toString();
}
/**
* 獲取空閒的空間大小
* @return 空間大小
*/
public static long getFreeSpaceBytes() {
long freeSpaceBytes;
final StatFs statFs = new StatFs(getSDPath());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
freeSpaceBytes = statFs.getAvailableBytes();
} else {
//noinspection deprecation
freeSpaceBytes = statFs.getAvailableBlocks() * (long) statFs.getBlockSize();
}
return freeSpaceBytes;
}
}