Android 文件路徑詳解

Android 文件目錄繁多,每個(gè)目錄都有每個(gè)目錄存在的意義,將文件存儲(chǔ)在正確的目錄,有利于文件的分類(lèi)管理。
Android磁盤(pán)存儲(chǔ)可以分為兩大類(lèi),內(nèi)部存儲(chǔ)和外部存儲(chǔ)。

內(nèi)部存儲(chǔ)

內(nèi)部存儲(chǔ)不是內(nèi)存,是位于位于系統(tǒng)磁盤(pán)中一個(gè)獨(dú)特的位置。/data/ 文件夾就是內(nèi)部存儲(chǔ),內(nèi)部存儲(chǔ)中一般存儲(chǔ)一些應(yīng)用的數(shù)據(jù),如apk,shareprefence、database數(shù)據(jù),webview緩存和圖片緩存等。內(nèi)部存儲(chǔ)中還有一個(gè)文件夾每個(gè)應(yīng)用都只有一個(gè),里面中數(shù)據(jù)在應(yīng)用卸載之后,就會(huì)被刪除。結(jié)構(gòu)如:/data/data/你的應(yīng)用的包名/。其次還有一個(gè) /data/app/ 的文件夾,這里面存儲(chǔ)著我們手機(jī)上安裝的apk文件。

特點(diǎn)
  • 內(nèi)部存儲(chǔ)的文件和目錄只能被我們的app自己所訪問(wèn),別的app不能訪問(wèn)。
  • 內(nèi)部存儲(chǔ)中的私有目錄,當(dāng)用戶卸載app之后,改文件目錄中關(guān)于該應(yīng)用的信息就會(huì)被刪除。
  • 內(nèi)部存儲(chǔ)是可用的。
  • 內(nèi)部存儲(chǔ)大小有限,不適合存儲(chǔ)大量數(shù)據(jù)。
  • 只有root的手機(jī),才能從手機(jī)文件管理器看見(jiàn),否則都是隱藏著的。
getCacheDir().getAbsolutePath();///data/data/包名/cache
常見(jiàn)的內(nèi)部存儲(chǔ)中有這些目錄
  • /data/app/
  • /data/data/包名/shared_prefs
  • /data/data/包名/cache
  • /data/data/包名/databases
  • /data/data/包名/files

外部存儲(chǔ)

外部存儲(chǔ)并不是指拓展的SD卡,不管有無(wú)外接設(shè)備,每個(gè)Android手機(jī)都有外部存儲(chǔ)。一般的mnt或者storage目錄。外部存儲(chǔ)中分兩類(lèi)目錄,私有目錄和公有目錄,私有目錄的數(shù)據(jù)會(huì)隨著應(yīng)用的卸載而刪除,公有目錄則不會(huì)。

特點(diǎn)
  • 公有目錄任何程序都可以訪問(wèn),私有目錄自身可以訪問(wèn)。
  • 并不一定是可用的,因?yàn)镾D卡會(huì)被掛載。
  • 外部存儲(chǔ)中的私有目錄中的數(shù)據(jù)會(huì)隨著應(yīng)用的卸載而刪除,公有目錄則不會(huì)。
公有目錄

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

  • DIRECTORY_MUSIC

音樂(lè)/storage/emulated/0/Music

  • DIRECTORY_PODCASTS

播客/storage/emulated/0/Podcasts

  • DIRECTORY_RINGTONES

來(lái)點(diǎn)鈴聲

  • 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

下載文件存儲(chǔ)路徑/storage/emulated/0/Download

  • DIRECTORY_DCIM

媒體文件/storage/emulated/0/DCIM

  • DIRECTORY_DOCUMENTS

文檔/storage/emulated/0/Documents

我們通過(guò)Environment.getExternalStoragePublicDirectory()來(lái)獲取這些目錄

私有目錄

外部存儲(chǔ)中的私有目錄是不會(huì)自動(dòng)創(chuàng)建的,需要開(kāi)發(fā)者自己創(chuàng)建,私有目錄應(yīng)用本身無(wú)需申請(qǐng)動(dòng)態(tài)權(quán)限,就能直接訪問(wèn)。我們可以在私有目錄下新建我們自己的文件夾

  • getExternalFilesDir("files目錄的子目錄名稱")

獲取應(yīng)用私有目錄files目錄中的文件目錄(/storage/emulated/0/Android/data/包名/files/子目錄)

  • getExternalCacheDir()

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容