Environment 是一個提供訪問環境變量的類。Environment 包含常量:
MEDIA_BAD_REMOVAL
解釋:返回getExternalStorageState() ,表明SDCard 被卸載前己被移除
MEDIA_CHECKING
解釋:返回getExternalStorageState() ,表明對象正在磁盤檢查。
MEDIA_MOUNTED
解釋:返回getExternalStorageState() ,表明對象是否存在並具有讀/寫權限
MEDIA_MOUNTED_READ_ONLY
解釋:返回getExternalStorageState() ,表明對象權限爲只讀
MEDIA_NOFS
解釋:返回getExternalStorageState() ,表明對象爲空白或正在使用不受支持的文件系統。
MEDIA_REMOVED
解釋:返回getExternalStorageState() ,如果不存在 SDCard 返回
MEDIA_SHARED
解釋:返回getExternalStorageState() ,如果 SDCard 未安裝 ,並通過 USB 大容量存儲共享 返回
MEDIA_UNMOUNTABLE
解釋:返回getExternalStorageState() ,返回 SDCard 不可被安裝 如果 SDCard 是存在但不可以被安裝
MEDIA_UNMOUNTED
解釋:返回getExternalStorageState() ,返回 SDCard 已卸掉如果 SDCard 是存在但是沒有被安裝
方法:getDataDirectory()
解釋:返回 File ,獲取 Android 數據目錄。
方法:getDownloadCacheDirectory()
解釋:返回 File ,獲取 Android 下載/緩存內容目錄。
方法:getExternalStorageDirectory()
解釋:返回 File ,獲取外部存儲目錄即 SDCard
方法:getExternalStoragePublicDirectory(String type)
解釋:返回 File ,取一個高端的公用的外部存儲器目錄來擺放某些類型的文件
方法:getExternalStorageState()
解釋:返回 File ,獲取外部存儲設備的當前狀態
方法:getRootDirectory()
解釋:返回 File ,獲取 Android 的根目錄
2、講述 StatFs 類
StatFs 一個模擬linux的df命令的一個類,獲得SD卡和手機內存的使用情況
StatFs 常用方法:
getAvailableBlocks()
解釋:返回 Int ,獲取當前可用的存儲空間
getBlockCount()
解釋:返回 Int ,獲取該區域可用的文件系統數
getBlockSize()
解釋:返回 Int ,大小,以字節爲單位,一個文件系統
getFreeBlocks()
解釋:返回 Int ,該塊區域剩餘的空間
restat(String path)
解釋:執行一個由該對象所引用的文件系統
* 1 在AndroidManifest文件中加入sdcard操作權限
* <!--在SDCard中創建與刪除文件權限 -->
* <uses-permissioandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
* <!--往SDCard寫入數據權限 -->
* <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
* 2 確認sdcard的存在
* android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)
檢查當前內存卡是否可用
- if (Environment.getExternalStorageState().equals(
- Environment.MEDIA_MOUNTED)) {
- // sd card 可用
- }else {
- // 當前不可用
- }
* 3 獲取擴展存儲設備的文件目錄
* android.os.Environment.getExternalStorageDirectory();
* 4 獲取擴展存儲設備的大小
String sdcard = Environment.getExternalStorageDirectory().getPath();
StatFs statFs = new StatFs(sdcard);
long blockSize = statFs.getBlockSize();//返回以字節爲單位的一個文件系統大小
long blockCount = statFs.getBlockCount() ;
long blocks = statFs.getAvailableBlocks();//獲取當前可用的存儲空間
long availableSpare = (blocks * blockSize) / (1024 * 1024);