android.os.StatFs
一個類比linux的df命令的一個類,獲得SD卡和手機記憶體的使用情況
java.lang.Object
android.os.StatFs

 

構造方法:
StatFs (String path)

 

公用方法:
方法 : getAvailableBlocks ()
返回 : int
解釋 :返回檔案系統上剩下的可供程式使用的塊

 

方法 : getBlockCount ()
返回 : int
解釋 : 返回檔案系統上總共的塊

 

方法 : getBlockSize ()
返回 : int
解釋 : 返回檔案系統 一個塊的大小單位byte

 

方法 : getFreeBlocks ()
返回 : int
解釋 : 返回檔案系統上剩餘的所有塊 包括預留的一般程式無法訪問的

 

方法 : restat (String path)
返回 : void
解釋 : 執行一個由該物件所引用的檔案系統雷斯塔特.(Google翻譯)

 

想計算SDCard大小和使用情況時, 只需要得到SD卡總共擁有的Block數或是剩餘沒用的Block數,再乘以每個Block的大小就是相應的容量大小了單位byte.

 

java代碼:

 

1.public void SDCardSizeTest() {
2.
3.// 取得SDCard當前的狀態
4.String sDcString = android.os.Environment.getExternalStorageState();
5.
6.if (sDcString.equals(android.os.Environment.MEDIA_MOUNTED)) {
7.
8.// 取得sdcard檔路徑
9.File pathFile = android.os.Environment
10..getExternalStorageDirectory();
11.
12.android.os.StatFs statfs = new android.os.StatFs(pathFile.getPath());
13.
14.// 獲取SDCard上BLOCK總數
15.long nTotalBlocks = statfs.getBlockCount();
16.
17.// 獲取SDCard上每個block的SIZE
18.long nBlocSize = statfs.getBlockSize();
19.
20.// 獲取可供程式使用的Block的數量
21.long nAvailaBlock = statfs.getAvailableBlocks();
22.
23.// 獲取剩下的所有Block的數量(包括預留的一般程式無法使用的塊)
24.long nFreeBlock = statfs.getFreeBlocks();
25.
26.// 計算SDCard 總容量大小MB
27.long nSDTotalSize = nTotalBlocks * nBlocSize / 1024 / 1024;28.
29.// 計算 SDCard 剩餘大小MB
30.long nSDFreeSize = nAvailaBlock * nBlocSize / 1024 / 1024;
31.}
出處:http://www.eoeandroid.com/thread-98542-1-1.html

 

創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(0) 人氣()