當應用需要將或者檔案快取到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的方法可以返...