android本地存儲(chǔ)目錄
獲得內(nèi)部存儲(chǔ)目錄
/**
* 獲得私有目錄文件冠句,卸載之后會(huì)自動(dòng)刪除蒲稳,7.0之后私有目錄訪問權(quán)限必須添加fileprovider訪問
*/
private void init() {
//絕對(duì)路徑,=/data/user/0/packname/files
File filesDir = mContext.getFilesDir();
filesDir.getAbsolutePath();
//緩存路徑,sp等,=/data/user/0/packname/cache
File cacheDir = mContext.getCacheDir();
cacheDir.getAbsolutePath();
boolean b = mContext.deleteFile("");
String[] strings = mContext.fileList();
//獲得私有目錄內(nèi)的自建目錄,=/data/user/0/packname/app_myFile
String myFile = mContext.getDir("myFile", MODE_PRIVATE).getAbsolutePath();
//獲得data目錄=/data
File dataDirectory = Environment.getDataDirectory();
}
獲得外部存儲(chǔ)目錄
/**
* 外部存儲(chǔ)路徑右蹦,sd等
* <p>
* /storage/emulated/0/Android/data/app package name
*/
private void init2() {
//在4.4以前系統(tǒng)中可能會(huì)獲得null,因?yàn)?.4之前如果沒有插sd卡准验,就代表沒有外部存儲(chǔ)饱狂,
//獲得某個(gè)應(yīng)用在外部存儲(chǔ)中的files路徑,=/storage/emulated/0/Android/data/packname/files
File externalFilesDir = mContext.getExternalFilesDir("");
String absolutePath = externalFilesDir.getAbsolutePath();
//獲得某個(gè)應(yīng)用在外部存儲(chǔ)中的cache路徑,=/storage/emulated/0/Android/data/packname/cache
String absolutePath1 = mContext.getExternalCacheDir().getAbsolutePath();
//通過Environment獲得的時(shí)候需要申請(qǐng)權(quán)限,獲得外部存儲(chǔ)的根路徑=/storage/emulated/0
String absolutePath3 = Environment.getExternalStorageDirectory().getAbsolutePath();
//,獲得外部存儲(chǔ)的根路徑=/storage/emulated/0
String absolutePath2 = Environment.getExternalStoragePublicDirectory("").getAbsolutePath();
}
獲得外部存儲(chǔ)目錄
/**
* 獲得外部存儲(chǔ)路徑,包括機(jī)身外部存儲(chǔ)以及sd卡存儲(chǔ)
*/
public void getExternalStoragePath() {
File[] files;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
files = mContext.getExternalFilesDirs(Environment.MEDIA_MOUNTED);
for (File file : files) {
Log.e("main", file.getPath());
}
}
}
其他目錄
Environment.getDownloadCacheDirectory();//,=/cache
Environment.getRootDirectory();//,=system