要獲取文件系統的信息,必須瞭解Environment類與StatFs類。
1. android.os.Environment類主要是一個提供訪問環境變量的類。
主要方法如下:
方法 | 解釋 | |
---|---|---|
1 | getDataDirectory() | 返回 File ,獲取 Android 數據目錄 |
2 | getRootDirectory() | 返回 File ,獲取 Android 的根目錄 |
3 | getExternalStorageDirectory() | 返回 File ,獲取外部存儲目錄即 SDCard |
4 | getExternalStorageState() | 返回 File ,獲取外部存儲設備的當前狀態 |
5 | getDownloadCacheDirectory() | 返回 File ,獲取 Android 下載/緩存內容目錄 |
2. android.os.StatFs類主要是模擬Linux的df命令。
主要方法如下:
方法 | 解釋 | |
---|---|---|
1 | getAvailableBlocks() | 返回int,獲取當前系統可用存儲空間的Block數 |
2 | getBlockCount() | 返回int,獲取當前系統存儲空間總的Block數 |
3 | getBlockSize() | 返回int,獲取當前系統Block佔的大小 |
4 | getFreeBlocks() | 返回int,該塊區域剩餘的空間 |
主要代碼如下:
private String getTotalRom(){
File path = Environment.getDataDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
float totalsize = totalBlocks * blockSize/1024f/1024f/1024f;
String mSizeStr = new DecimalFormat("##.###").format(totalsize);
return (String.valueOf(mSizeStr) + " GB");
}
private String getInSDCard(){
StatFs localStatFs = new StatFs(inSDPath);
long blockCount = localStatFs.getBlockCount();
long blockSize = localStatFs.getBlockSize();
float totalsize = blockCount*blockSize/1024f/1024f/1024f;
String mSizeStr = new DecimalFormat("##.###").format(totalsize);
return mSizeStr+" GB";
}