SD卡環境變量類的/android存儲設備的相關操作

1、講述 Environment 類
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 是存在但是沒有被安裝
Environment 常用方法:
方法: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)

檢查當前內存卡是否可用

  1. if (Environment.getExternalStorageState().equals(     
  2.                     Environment.MEDIA_MOUNTED)) {     
  3.                 // sd card 可用     
  4.                          
  5.                 }else {     
  6. // 當前不可用     
  7. }  


* 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);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章