記錄一下開發(fā)中遇到的一些目錄。
在開發(fā)中會有內部存儲器(Internal Storage)和外部存儲器(External Storage)。
Internal Storage
內部存儲,路徑:data/data/packageName/(此部分的根目錄)。這個目錄下的文件為應用私有的,其他的應用是無法訪問的。同時此目錄下的文件是會隨應用的卸載而被刪除。讀寫此目錄下的文件是不需要權限的。
-getDir(String name, int mode)返回對應目錄下的File文件夾對象。
-getFilesDir()返回根目錄/files文件夾,Context.openFileInput()和Context.openFileOutput都是這個文件夾。
-fileList()返回的是files下的所有文件名
-deleteFile(String name)刪除files下指定名稱的文件。
-getCacheDir()該方法返回的是根目錄/cache的File對象.當Android的內部存儲容量過低時,android會自動清除緩存文件
External Storage
外部儲存,在此存儲數(shù)據(jù)是不安全的。在這部分存儲,個人可以分為兩個部分來總結。
1.本應用相關目錄
此部分路徑為/storage/emulated/0/Android/data/packageName/。此目錄下的文件會隨軟件的卸載而被刪除。在4.4之后讀寫此目錄下的文件不需要權限。但是這個目錄下的文件可以被用戶以及帶有WRITE_EXTERNAL_STORAGE或WRITE_EXTERNAL_STORAGE權限的應用讀取或修改。
-getExternalFilesDir(String type)返回/storage/emulated/0/Android/data/packageName/files/type文件夾,若type為null則返回/storage/emulated/0/Android/data/packageName/files文件夾。
-getExternalCacheDir()返回/storage/emulated/0/Android/data/packageName/cache文件夾
2.外部自定義目錄
除1以外的目錄。讀寫這部分文件需要WRITE_EXTERNAL_STORAGE或WRITE_EXTERNAL_STORAGE權限,6.0以上需要運行時權限。這部分文件是不會隨應用被卸載而刪除。
-Environment.getExternalStorageDirectory()返回/storage/emulated/0文件。