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