本文鏈接:https://blog.csdn.net/zhangbuzhangbu/article/details/23257873
一直以來對(duì)Android系統(tǒng)目錄的獲取方法和具體代表含義沒有掌握清楚亲配,今天特意整理了一下原环,分享給大家酿炸,對(duì)自己也是一個(gè)總結(jié)叨叙。
在android 6.0以前,你可以只關(guān)注外置存儲(chǔ)是否掛載即可船惨,但是從6.0以后柜裸,也就是M系統(tǒng)后,還需要判斷是否有讀寫權(quán)限粱锐,只有具備這些權(quán)限才可以讀寫外置存儲(chǔ)(6.0系統(tǒng)權(quán)限機(jī)制不在本文討論范圍疙挺,大家可以閱讀我寫的另外一篇博文-android M上可能需要開發(fā)者注意的權(quán)限大全)。下面就開始一一介紹:
1怜浅,Context.getFilesDir
獲取路徑:/data/user/0/應(yīng)用包名/files
該目錄是應(yīng)用的文件存儲(chǔ)目錄铐然,應(yīng)用被卸載時(shí),該目錄一同被系統(tǒng)刪除恶座。默認(rèn)存在搀暑,默認(rèn)具備讀寫權(quán)限(6.0系統(tǒng)可以不用向用戶申請(qǐng))
2,Context.getCacheDir
獲取路徑:/data/user/0/應(yīng)用包名/cache
該目錄是應(yīng)用的文件緩存目錄,應(yīng)用被卸載時(shí)跨琳,該目錄一同被系統(tǒng)刪除自点。默認(rèn)存在,默認(rèn)具備讀寫權(quán)限脉让。不同于getFileDir桂敛,該目錄下的文件在系統(tǒng)內(nèi)存緊張時(shí)冈绊,會(huì)被清空文件,來騰出空間供系統(tǒng)使用埠啃,著名的圖片加載庫ImageLoader就是在沒有外置存儲(chǔ)讀寫權(quán)限時(shí)使用此文件夾。getFileDir伟恶,不會(huì)因?yàn)橄到y(tǒng)內(nèi)存不足而被清空碴开。(6.0系統(tǒng)可以不用向用戶申請(qǐng))
3,Context.getObbDir
獲取路徑:/storage/emulated/0/Android/obb/應(yīng)用包名
該目錄是應(yīng)用的數(shù)據(jù)存放目錄博秫,一般被用來存放游戲數(shù)據(jù)包obb文件潦牛。默認(rèn)存在,可讀寫(6.0系統(tǒng)可以不用向用戶申請(qǐng))
4挡育,Context.CodeCacheDir
獲取路徑:/data/user/0/應(yīng)用包名/code_cache
默認(rèn)存在巴碗,可讀寫。(6.0系統(tǒng)可以不用向用戶申請(qǐng))
5即寒,Context.getExternalFilesDir
獲取路徑:(以下載目錄為準(zhǔn)) /storage/emulated/0/Android/data/應(yīng)用包名/files/Download
默認(rèn)存在橡淆,可讀寫。(6.0系統(tǒng)可以不用向用戶申請(qǐng))
6母赵,Context.getExternalCacheDir
獲取路徑:/storage/emulated/0/Android/data/應(yīng)用包名/cache
默認(rèn)存在逸爵,可讀寫。(6.0系統(tǒng)可以不用向用戶申請(qǐng))
7凹嘲,Context.getDatabasePath
獲取路徑:/data/user/0/應(yīng)用包名/databases/參數(shù)名
默認(rèn)不存在师倔,可讀寫。(6.0系統(tǒng)可以不用向用戶申請(qǐng))
8周蹭,Context.getDir
獲取路徑:/data/user/0/應(yīng)用包名/app_參數(shù)名
默認(rèn)存在趋艘,可讀寫。分為Private等三個(gè)權(quán)限凶朗,private代表僅能自己訪問瓷胧。(6.0系統(tǒng)可以不用向用戶申請(qǐng))
9,Context.getPackageCodePath
獲取路徑:/data/app/應(yīng)用包名-1/base.apk
默認(rèn)存在俱尼,獲取apk包路徑
10抖单,Context.getRootDirectory
獲取路徑:/system
默認(rèn)存在,不可讀寫(除非具備root權(quán)限)
11,Environment.getExternalStorageDirectory
獲取路徑:/storage/emulated/0
默認(rèn)存在遇八,聲明權(quán)限則可讀寫(6.0和以后系統(tǒng)還需要向用戶申請(qǐng)同意才可以)
12矛绘,Environment.getExternalStoragePublicDirectory
獲取路徑:/storage/emulated/0/Download(以下載目錄為例)
默認(rèn)存在,聲明權(quán)限則可讀寫(6.0和以后系統(tǒng)還需要向用戶申請(qǐng)同意才可以)
13刃永,Environment.getDownloadCacheDirectory
獲取路徑:/cache
默認(rèn)存在货矮,聲明權(quán)限則可讀寫(6.0和以后系統(tǒng)還需要向用戶申請(qǐng)同意才可以)
14,Context.getFileStreamPath
獲取路徑:/data/data/應(yīng)用包名/files/download(示例download)
該目錄是應(yīng)用的文件存儲(chǔ)目錄,應(yīng)用被卸載時(shí)斯够,該目錄一同被系統(tǒng)刪除囚玫。默認(rèn)存在喧锦,默認(rèn)具備讀寫權(quán)限(6.0系統(tǒng)可以不用向用戶申請(qǐng))
————————————————
版權(quán)聲明:本文為CSDN博主「zhangmingcsdn」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議抓督,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明燃少。
原文鏈接:https://blog.csdn.net/zhangbuzhangbu/article/details/23257873