App檔案儲存 getFilesDir()--getExternalFilesDir()

314GM發表於2017-11-15

本文出自 “阿拉燈神燈” 部落格,出處http://blog.csdn.net/nugongahou110

App專屬檔案 vs App獨立檔案

app專屬檔案就是那些只有該app才可以使用的檔案,例如專屬格式的電子書,app獨立檔案就是那些不依賴於某特定app的檔案,例如照片。

App獨立檔案

這類檔案當我們刪除應用之後,還應該保留在手機上的,例如拍照的照片,不應該隨著刪除應用而被刪除掉。對於這類檔案,Android給我們提供了特定的目錄,這些目錄都是以DIRECTORY開頭的,例如:DIRECTORY_MUSIC , DIRECTORY_PICTURES.

訪問這些資料夾有兩種方式:

1.File sdCard = Environment.getExternalStorageDirectory();

2.File directory_pictures = 
Environment.getExternalStoragePublicDirectory("新增公共目錄://");


獲得得路徑都為:/mnt/sdcard/

App專屬檔案

這類檔案應該是隨著app刪除而一起刪除的,它們可以被儲存在兩個地方:internal storage 和 external storage 。 internal storage就是手機自帶的一塊儲存區域,通常很小;external storage就是通常所說的SD卡,通常很大,有16GB,32GB等。

internal storage很小,所以你就應該很正確的使用它,因為SD卡有可能會被使用者卸下,換成新的,所以SD卡不是任何時間都可用的,因此我們必須將一些重要的資料庫檔案以及一些使用者配置檔案存放在internal storage中。將一些大的圖片或檔案等快取放到external storage中。

儲存在internal storage

這是你app私有的目錄,你的shared preference檔案,資料庫檔案,都儲存在這裡。目錄為data/data/< package name >/files/
訪問方法為:

 File filesDir = getFilesDir();

獲得得路徑為:/data/data/< package name >/files/

儲存在external storage

這類檔案不應該存在SD卡的根目錄下,而應該存在mnt/sdcard/Android/data/< package name >/files/…這個目錄下。這類檔案應該隨著App的刪除而一起刪除。例如一種格式的電子書,只有該app才可以開啟,如果使用者刪除了該app,那麼留下來的電子書就成為了一種無法開啟的垃圾檔案,所以應該隨著該app一起刪除掉。

獲得這個路徑的方法:

File externalFilesDir = getExternalFilesDir();

獲得得路徑為:/mnt/sdcard/Android/data/< package name >/files/
另:

通過Context.getExternalFilesDir()方法可以獲取到 SDCard/Android/data/{package_name}/files/ ,儲存一些長時間儲存的資料;

通過Context.getExternalCacheDir()方法可以獲取到 SDCard/Android/data/{package_name}/cache/,儲存臨時快取資料;





本文出自 “阿拉燈神燈” 部落格,出處http://blog.csdn.net/nugongahou110



相關文章