1. 程式人生 > >安卓常見檔案路徑

安卓常見檔案路徑

安卓檔案路徑非常容易記混,現記錄如下,方便以後檢視

1.外部儲存和內部儲存的區別

Internal storage:

總是可用的

這裡的檔案預設只能被我們的app所訪問。

當用戶解除安裝app的時候,系統會把internal內該app相關的檔案都清除乾淨。

Internal是我們在想確保不被使用者與其他app所訪問的最佳儲存區域

External storage:

並不總是可用的,因為使用者有時會通過USB儲存模式掛載外部儲存器,當取下掛載的這部分後,就無法對其進行訪問了。

是大家都可以訪問的,因此儲存在這裡的檔案可能被其他程式訪問

當用戶解除安裝您的應用時,只有在您通過 getExternalFilesDir() 將您的應用的檔案儲存在目錄中時,系統才會從此處刪除您的應用的檔案

External是在不需要嚴格的訪問許可權並且希望這些檔案能夠被其他app所共享或者是允許使用者通過電腦訪問時的最佳儲存區域。

2.常見的獲取檔案路徑方法,對應的絕對路徑

getCacheDir().getAbsolutePath():

/data/data/packagename/cache

這個目錄和getFilesDir()目錄最大的不同在於:當安卓裝置的儲存空間少,或者不夠用的時候,系統會自動刪除這個目錄下的檔案。

官方建議是,超過1MB的檔案,建議儲存到getExternalCacheDir()目錄下

getFilesDir().getAbsolutePath():

/data/data/packagename/files

以上為記憶體儲存路徑,以下為外部儲存路徑

getExternalCacheDir().getAbsolutePath():

/storage/emulated/0/Android/data/packagename/cache

應用外部儲存空間(資料檔案私有,系統媒體檔案無法訪問)

可以作為外部快取的路徑,解除安裝app時,會自動刪除檔案(前提是使用虛擬外部儲存)

Environment.getExternalStorageDirectory().getAbsolutePath():

/storage/emulated/0

應用外部儲存空間(資料檔案非私有,可以被手機的系統程式訪問)

官方建議,不要直接使用該目錄,為了避免汙染使用者的根名稱空間,應用私有的資料,應該放在 Context.getExternalFilesDir目錄下

其他的可以被分享的檔案,可以放在getExternalStoragePublicDirectory(String).目錄下

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getAbsolutePath()):

/storage/emulated/0/DCIM

應用外部儲存空間(資料檔案非私有,可以被手機的系統程式訪問)

這個目錄是用來存放各種型別的檔案的目錄,在這裡使用者可以分類管理不同型別的檔案(例如音樂、圖片、電影等);

型別如下: DIRECTORY_MUSIC, DIRECTORY_PODCASTS, DIRECTORY_RINGTONES, DIRECTORY_ALARMS, DIRECTORY_NOTIFICATIONS, DIRECTORY_PICTURES, DIRECTORY_MOVIES, DIRECTORY_DOWNLOADS, DIRECTORY_DCIM, or DIRECTORY_DOCUMENTS

getExternalFilesDir(Environment.DIRECTORY_PICTURES).getAbsolutePath:

/storage/emulated/0/Android/data/packagename/files/Pictures

應用外部儲存空間(資料檔案私有,系統媒體檔案無法訪問)

解除安裝app時,會自動刪除檔案(前提是使用虛擬外部儲存)