1. 程式人生 > >Android值資料讀寫在sd卡需要注意的事項

Android值資料讀寫在sd卡需要注意的事項

使用Sdcard注意事項:

1.許可權問題:

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

2.硬性編碼問題:通過 Environment可以獲取sdcard的路徑

Environment.getExternalStorageDirectory().getPath();

3.使用前需要判斷sdcard狀態

if(!Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)){

//sdcard狀態是沒有掛載的情況

Toast.makeText(mContext, "sdcard不存在或未掛載", Toast.LENGTH_SHORT).show();

return ;

}

4.需要判斷sdcard剩餘空間

//判斷sdcard儲存空間是否滿足檔案的儲存

File sdcard_filedir = Environment.getExternalStorageDirectory();//得到sdcard的目錄作為一個檔案物件

long usableSpace = sdcard_filedir.getUsableSpace();//獲取檔案目錄物件剩餘空間

long totalSpace = sdcard_filedir.getTotalSpace();

//將一個long型別的檔案大小格式化成使用者可以看懂的MG字串

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比較大的資料。