1. 程式人生 > >android成長之路,獲取外部與內部儲存的程式碼

android成長之路,獲取外部與內部儲存的程式碼

外部:

        Context.getFileDir().getPath();

內部:

       Environment.getExternalStorageDirectory().getPath();

 注意事項:

   1、許可權  

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

   2、使用前判斷sd卡的狀態

if(!Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)){
				//sdcard狀態是沒有掛載的情況
Toast.makeText(mContext, "sdcard不存在或未掛載", Toast.LENGTH_SHORT).show(); return ; }

   3、判斷sd卡的剩餘空間

//判斷sdcard儲存空間是否滿足檔案的儲存
			File sdcard_filedir = Environment.getExternalStorageDirectory();//得到sdcard的目錄作為一個檔案物件
			long usableSpace = sdcard_filedir.getUsableSpace();//獲取檔案目錄物件剩餘空間
			long totalSpace = sdcard_filedir.getTotalSpace();
			//將一個long型別的檔案大小格式化成使用者可以看懂的M,G字串
String usableSpace_str = Formatter.formatFileSize(mContext, usableSpace); String totalSpace_str = Formatter.formatFileSize(mContext, totalSpace); if(usableSpace < 1024 * 1024 * 200){//判斷剩餘空間是否小於200M Toast.makeText(mContext, "sdcard剩餘空間不足,無法滿足下載;剩餘空間為:"+usableSpace_str, Toast.LENGTH_SHORT).show(); return
; } /data/data: context.getFileDir().getPath(); 是一個應用程式的私有目錄,只有當前應用程式有許可權訪問讀寫,其他應用無許可權訪問。一些安全性要求比較高的資料存放在該目錄,一般用來存放size比較小的資料。 /sdcard: Enviroment.getExternalStorageDirectory().getPath(); 是一個外部儲存目錄,只用應用聲明瞭<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>的一個許可權,就可以訪問讀寫sdcard目錄;所以一般用來存放一些安全性不高的資料,檔案size比較大的資料。