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