1. 程式人生 > >Android 檔案路徑詳解

Android 檔案路徑詳解

Android 檔案目錄繁多,每個目錄都有每個目錄存在的意義,將檔案儲存在正確的目錄,有利於檔案的分類管理。 Android磁碟儲存可以分為兩大類,內部儲存和外部儲存。

內部儲存

內部儲存不是記憶體,是位於位於系統磁碟中一個獨特的位置。/data/ 資料夾就是內部儲存,內部儲存中一般儲存一些應用的資料,如apk,shareprefence、database資料,webview快取和圖片快取等。內部儲存中還有一個資料夾每個應用都只有一個,裡面中資料在應用解除安裝之後,就會被刪除。結構如:/data/data/你的應用的包名/。其次還有一個 /data/app/ 的資料夾,這裡面儲存著我們手機上安裝的apk檔案。

特點
  • 內部儲存的檔案和目錄只能被我們的app自己所訪問,別的app不能訪問。
  • 內部儲存中的私有目錄,當用戶解除安裝app之後,改檔案目錄中關於該應用的資訊就會被刪除。
  • 內部儲存是可用的。
  • 內部儲存大小有限,不適合儲存大量資料。
  • 只有root的手機,才能從手機檔案管理器看見,否則都是隱藏著的。
getCacheDir().getAbsolutePath();///data/data/包名/cache
常見的內部儲存中有這些目錄
  • /data/app/
  • /data/data/包名/shared_prefs
  • /data/data/包名/cache
  • /data/data/包名/databases
  • /data/data/包名/files

外部儲存

外部儲存並不是指拓展的SD卡,不管有無外接裝置,每個Android手機都有外部儲存。一般的mnt或者storage目錄。外部儲存中分兩類目錄,私有目錄和公有目錄,私有目錄的資料會隨著應用的解除安裝而刪除,公有目錄則不會。

特點
  • 公有目錄任何程式都可以訪問,私有目錄自身可以訪問。
  • 並不一定是可用的,因為SD卡會被掛載。
  • 外部儲存中的私有目錄中的資料會隨著應用的解除安裝而刪除,公有目錄則不會。
公有目錄

公有目錄是任何程式都可以

  • DIRECTORY_MUSIC

音樂/storage/emulated/0/Music

  • DIRECTORY_PODCASTS

播客/storage/emulated/0/Podcasts

  • DIRECTORY_RINGTONES

來點鈴聲

  • DIRECTORY_ALARMS

鬧鐘/storage/emulated/0/Alarms

  • DIRECTORY_NOTIFICATIONS

通知/storage/emulated/0/Notifications

  • DIRECTORY_PICTURES

圖片/storage/emulated/0/Pictures

  • DIRECTORY_MOVIES

電影/storage/emulated/0/Movies

  • DIRECTORY_DOWNLOADS

下載檔案儲存路徑/storage/emulated/0/Download

  • DIRECTORY_DCIM

媒體檔案/storage/emulated/0/DCIM

  • DIRECTORY_DOCUMENTS

文件/storage/emulated/0/Documents

我們通過Environment.getExternalStoragePublicDirectory()來獲取這些目錄

私有目錄

外部儲存中的私有目錄是不會自動建立的,需要開發者自己建立,私有目錄應用本身無需申請動態許可權,就能直接訪問。我們可以在私有目錄下新建我們自己的資料夾

  • getExternalFilesDir(“files目錄的子目錄名稱”)

獲取應用私有目錄files目錄中的檔案目錄(/storage/emulated/0/Android/data/包名/files/子目錄)

  • getExternalCacheDir()

獲取應用cache目錄(/storage/emulated/0/Android/data/包名/cache)