獲取應用專屬快取目錄

2021-07-26 14:22:04 字數 1690 閱讀 2628

當應用需要將或者檔案快取到sd卡中時要去申請建立目錄,有下面幾種途徑 

我們可以通過api呼叫應用專屬目錄:

content.getexternalfilesdir(environment.directory_pictures);

content.getexternalcachedir();

當系統版本大於等於4.4時,對通過上面4個api呼叫得到的目錄進行檔案的讀寫操作不需要申請sd卡的讀寫許可權,所以6.0及以上系統使用時也不需要動態申請讀寫許可權

當儲存比較大的檔案時,如等檔案儲存在sd卡對應的目錄下

應用的記憶體快取目錄只有應用本身能對其進行讀寫操作,外部應用不行,如相機應用 (記憶體目錄讀寫許可權:rwxr-x–x,sd卡快取目錄讀寫許可權:rwxrwx—)

即使是通過自定義路徑得到的上述目錄,在系統版本大於等於4.4時也不需要申請sd卡讀寫許可權

/**

* 獲取應用專屬快取目錄

* android 4.4及以上系統不需要申請sd卡讀寫許可權

* 因此也不用考慮6.0系統動態申請sd卡讀寫許可權問題,切隨應用被解除安裝後自動清空 不會汙染使用者儲存空間

* @param context 上下文

* @param type 資料夾型別 可以為空,為空則返回api得到的一級目錄

* @return 快取資料夾 如果沒有sd卡或sd卡有問題則返回記憶體快取目錄,否則優先返回sd卡快取目錄

*/public static file getcachedirectory(context context,string type)

log.e("getcachedirectory","getcachedirectory fail ,the reason is mobile phone unknown exception !");

}else

}}/**

* 獲取sd卡快取目錄

* @param context 上下文

* ,* ,

* ,* ,

* ,* , or

* .or 自定義資料夾名稱

* @return 快取目錄資料夾 或 null(無sd卡或sd卡掛載失敗)

*/public static file getexternalcachedirectory(context context,string type) else

}log.e("getexternaldirectory","getexternaldirectory fail ,the reason is sdcard unknown exception !");

}else

}}else

}/**

* 獲取記憶體快取目錄

* @param type 子目錄,可以為空,為空直接返回一級目錄

* @return 快取目錄資料夾 或 null(建立目錄檔案失敗)

* 注:該方法獲取的目錄是能供當前應用自己使用,外部應用沒有讀寫許可權,如 系統相機應用

*/public static file getinternalcachedirectory(context context,string type) else

log.e("getinternaldirectory","getinternaldirectory fail ,the reason is make directory fail !");

}}

c 獲取應用程式目錄

得到結果 d 1 bin debug 路徑測試.vshost.exe d 1 bin debug d 1 bin debug d 1 bin debug d 1 bin debug d 1 bin debug d 1 bin debug 路徑測試.exe 1.system.diagnostics.p...

獲取IOS應用的子目錄

在開發ios應用時,我們經常需要將素材分類,並放入相應地子目錄中。在開發 時,需要訪問這些素材時,就需要獲取對應的子目錄路徑。那麼如何獲取呢?首先,要找到應用所在的路徑。nsstring bundlepath nsbundle mainbundle bundlepath 假設有乙個子目錄名字叫做im...

android快取目錄

1.內部儲存和外部儲存 內部儲存主要是存放系統檔案,外部儲存存放應用檔案 4.4以前內部儲存就是手機自帶的儲存空間,外部儲存就是使用者插的sd卡。4.4以後手機自帶的儲存空間在概念上分為內部儲存和外部,使用者插的sd卡也是外部儲存,預設返回的是手機儲存中的外部儲存,有乙個getfiles的方法可以返...