天天看點

Android SDCard操作(檔案讀寫,容量計算) 計算SDCard的容量大小

原文:http://crackren.iteye.com/blog/747121

android.os.environment

提供通路環境變量

java.lang.object

environment 靜态方法:

方法 : getdatadirectory ()

傳回 : file

解釋 : 傳回data的目錄

方法 : getdownloadcachedirectory ()

解釋 : 傳回下載下傳緩沖區目錄

方法 : getexternalstoragedirectory ()

解釋 : 傳回擴充存儲區目錄(sdcard)

方法 : getexternalstoragepublicdirectory (string type)

解釋 : 傳回一個高端的公用的外部存儲器目錄來擺放某些類型的檔案(來自網上)

方法 : getrootdirectory ()

解釋 : 傳回android的根目錄

方法 : getexternalstoragestate ()

傳回 : string

解釋 : 傳回外部儲存設備的目前狀态

常量 : media_bad_removal

值    : "bad_removal"

解釋 : 在沒有正确解除安裝sdcard之前移除了

常量 : media_checking

值    : "checking"

解釋 : 正在磁盤檢查

常量 : media_mounted

值    : "mounted"

解釋 : 已經挂載并且擁有可讀可寫權限

常量 : media_mounted_read_only

值    : "mounted_ro"

解釋 : 已經挂載,但隻擁有可讀權限

常量 : media_nofs

值    : "nofs"

解釋 : 對象空白,或者檔案系統不支援

常量 : media_removed

值    : "removed"

解釋 : 已經移除擴充裝置

常量 : media_shared

值    : "shared"

解釋 : 如果sdcard未挂載,并通過usb大容量存儲共享

常量 : media_unmountable

值    : "unmountable"

解釋 : 不可以挂載任何擴充裝置

常量 : media_unmounted

值    : "unmounted"

解釋 : 已經解除安裝

一個模拟linux的df指令的一個類,獲得sd卡和手機記憶體的使用情況

android.os.statfs

構造方法:

statfs (string path)

公用方法:

方法 : getavailableblocks ()

傳回 : int

解釋 :傳回檔案系統上剩下的可供程式使用的塊

方法 : getblockcount ()

解釋 : 傳回檔案系統上總共的塊

方法 : getblocksize ()

解釋 : 傳回檔案系統 一個塊的大小機關byte

方法 : getfreeblocks ()

解釋 : 傳回檔案系統上剩餘的所有塊 包括預留的一般程式無法通路的

方法 : restat (string path)

傳回 : void

解釋 : 執行一個由該對象所引用的檔案系統雷斯塔特.(google翻譯)

想計算sdcard大小和使用情況時, 隻需要得到sd卡總共擁有的block數或是剩餘沒用的block數,再乘以每個block的大小就是相應的容量大小了機關byte.(見代碼)

主要:

在判斷sdcard的狀态為media_mounted後,僅是說明硬體已經準備好可讀可寫

如果想叫你的程式也可寫的話,還需要在工程的xml檔案中加上操作擴充儲存設備的權限

方法:

在 xml檔案中 permissions 标簽中 點選add 添加 uses permission 名字選擇 

android.permission.write_external_storage

或者直接在xml檔案中添加下面一句即可.

<uses-permission android:name="android.permission.write_external_storage"></uses-permission>

繼續閱讀