版權聲明:本文為作者原創,轉載必須注明出處。
轉載請注明出處:http://www.lxweimin.com/p/7b948b47e986
Android設置中中清除數據:
清理掉的數據路徑:
1、內部存儲:data\data\下的包名文件夾會被整個清除掉
2、外部存儲:mnt\sdcard\Android\data\包名文件夾會被整個清除掉
不會被清理掉的數據路徑:
外部存儲:mnt\sdcard\Android\除了對于包名之外的所有文件及文件夾都不會被清掉
對于內部存儲:獲取data\data\包名\files ?目錄下的文件流
context.openFileOutput 寫
context.openFileInput 讀
判斷有無sdcard:
android.os.Environment.getExternalStorageState().equals(
android.os.Environment.MEDIA_MOUNTED);
android獲取目錄的系統方法:
一、內部存儲(通過context獲取):
Context.getDatabasePath()???????????????????????????????????????????????????返回通過Context.openOrCreateDatabase?創建的數據庫文件
Context.getCacheDir().getPath()?:??????????????????????????????????????????用于獲取APP的cache目錄?/data/data//cache目錄
Context.getExternalCacheDir().getPath()??:????????????????????????????用于獲取APP的在SD卡中的cache目錄/mnt/sdcard/Android/data//cache ?不對
應該是/storage/emulated/0/Android/data/app_package_name/cache
Context.getFilesDir().getPath()??:???????????????????????????????????????????用于獲取APP的files目錄?/data/data//files
Context.getObbDir().getPath():?????????????????????????????????????????????用于獲取APPSDK中的obb目錄?/mnt/sdcard/Android/obb/
Context.getPackageName()?:????????????????????????????????????????????????用于獲取APP的所在包目錄
Context.getPackageCodePath()??:?????????????????????????????????????????來獲得當前應用程序對應的?apk?文件的路徑
Context.getPackageResourcePath()?:????????????????????????????????????獲取該程序的安裝包路徑
二、外部存儲(Environment獲取):
Environment.getDataDirectory().getPath()?:??????????????????????????獲得根目錄/data?內部存儲路徑
Environment.getDownloadCacheDirectory().getPath()??:??????獲得緩存目錄/cache
Environment.getExternalStorageDirectory().getPath():?????????獲得SD卡目錄/mnt/sdcard(獲取的是手機外置sd卡的路徑)
Environment.getRootDirectory().getPath()?:??????????????????????????獲得系統目錄/system
SD卡緩存目錄
當應用需要將圖片或者文件緩存到SD卡中時要去申請創建目錄,有下面幾種途徑
我們可以通過API調用應用專屬目錄:
//?/storage/emulated/0/Android/data/app_package_name/files/Pictures
Content.getExternalFilesDir(Environment.DIRECTORY_PICTURES);
//?/storage/emulated/0/Android/data/app_package_name/cache
Content.getExternalCacheDir();
上面兩個目錄是專屬于當前app的,當應用被刪除時,上面目錄下的文件也會清空
內存緩存目錄
相對于應用的專屬SD卡緩存有兩個內存緩存地址:
Content.?getCacheDir();?//? /data/data/app_package_name/cache
Content.?getFilesDir();?//? /data/data/app_package_name/files