在Android開發(fā)過(guò)程中,我們經(jīng)常會(huì)對(duì)文件系統(tǒng)進(jìn)行操作——存放、釋放我們應(yīng)用的數(shù)據(jù)。Android系統(tǒng)中提供了各種功能的文件目錄,每個(gè)目錄都有相應(yīng)的特點(diǎn)和功能。 這篇文章主要介紹和記錄一下實(shí)際開發(fā)過(guò)程中常用的各個(gè)文件目錄。
(1)內(nèi)部存儲(chǔ)(Internal Storage)
內(nèi)部存儲(chǔ)是App的私有目錄,當(dāng)一個(gè)應(yīng)用卸載之后,內(nèi)部存儲(chǔ)中的這些文件也被刪除。Shared Preferences和SQLite數(shù)據(jù)庫(kù)文件都是存儲(chǔ)在內(nèi)部存儲(chǔ)空間上的。
-context.getFileDir()
路徑:(data/data/應(yīng)用包名/files),
不過(guò)經(jīng)實(shí)際測(cè)試(華為、小米手機(jī)等),getFileDir實(shí)際路徑為: /data/user/0/ 應(yīng)用包名/files
Log.e(TAG,getApplicationContext().getFilesDir().getAbsolutePath())
-context.getCacheDir()
應(yīng)用程序的緩存目錄,該目錄內(nèi)的文件在設(shè)備內(nèi)存不足時(shí)會(huì)優(yōu)先被刪除掉,所以存放在這里的文件是沒(méi)有任何保障的,可能會(huì)隨時(shí)丟掉。
路徑:(data/data/應(yīng)用包名/cache),不過(guò)經(jīng)實(shí)際測(cè)試(華為、小米手機(jī)等),getCacheDir的手機(jī)路徑為: /data//data/user/0/應(yīng)用包名/cache
Log.e(TAG,getApplicationContext().getCacheDir().getAbsolutePath())
(2 )外部存儲(chǔ)(External Storage)
外部存儲(chǔ)一般是指SDCard,外部存儲(chǔ)中的文件是可以被用戶或者其他應(yīng)用程序修改的,外部存儲(chǔ)中的目錄實(shí)際上也分為兩種:
-公共文件(目錄)
文件是可以被自由訪問(wèn),且文件的數(shù)據(jù)對(duì)其他應(yīng)用或者用戶來(lái)說(shuō)都是由 意義的,當(dāng)應(yīng)用被卸載之后,其卸載前創(chuàng)建的文件仍然保留。
Environment.getExternalStorageDirectory()
SD卡的根目錄,路徑:/storage/emulated/0
Log.e(TAG, Environment.getExternalStorageDirectory().getAbsolutePath());
-私有文件
由于是外部存儲(chǔ)的原因即使是這種類型的文件也能被其他程序訪問(wèn),只不過(guò)一個(gè)應(yīng)用私有的文件對(duì)其他應(yīng)用其實(shí)是沒(méi)有訪問(wèn)價(jià)值的(惡意程序除外)。外部存儲(chǔ)上,應(yīng)用私有文件的價(jià)值在于卸載之后,這些文件也會(huì)被刪除。類似于內(nèi)部存儲(chǔ)。
getApplicationContext().getExternalFilesDir(“”)
路徑:/storage/emulated/0/Android/data/應(yīng)用包名/files
Log.e(TAG, getApplicationContext().getExternalFilesDir("").getAbsolutePath());
擴(kuò)展: getExternalFilesDir是手機(jī)中設(shè)置 → 應(yīng)用 → 具體應(yīng)用詳情→ 清除數(shù)據(jù) 的操作對(duì)象
getApplicationContext().getExternalCacheDir()
路徑:/storage/emulated/0/Android/data/應(yīng)用包名/cache
Log.e(TAG,getApplicationContext().getExternalCacheDir().getAbsolutePath());
擴(kuò)展:getExternalCacheDir是手機(jī)中設(shè)置 → 應(yīng)用 → 具體應(yīng)用詳情→ 清除緩存的操作對(duì)象
以上這篇Android 獲取系統(tǒng)各個(gè)目錄的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持VeVb武林網(wǎng)。
新聞熱點(diǎn)
疑難解答
圖片精選