Context.getCacheDir()
/data/data/cache
These files will be ones that get deleted first when the device runs low on storage. There is no guarantee when these files will be deleted.
但是,最好不要依賴系統來管理,應該自己設定一個最大容量,當超出這個值時自己刪除。
Context.getFilesDir(),Context.openFileOutput(String, int),Context.getFileStreamPath(String),Context.getDir(String, int)
/data/data/files
Android支援在SD卡上的應用私人目錄,在Froyo版本後,通過getExternalFilesDir()可以獲得具體路徑。該路徑依賴與應用的包名,如果你包為hello.file那麼SD開上的應用私人目錄為\mnt\sdcard\Android\data\hello.file\files\.
在使用SD卡目錄時,需注意SD卡是否掛載,可通過Environment.getExternalStorageState()方法進行判斷,如果傳回值為Envirnment.MEDIA_MOUNTED表示SD卡處於掛載狀態,可以放心使用。
getExternalCacheDir()和getCacheDir()比較
共同點:
files will be deleted when the application is uninstalled
不同點:
1、The platform does not monitor the space available in external storage, and thus will not automatically delete these files. Note that you should be managing the maximum space you will use for these anyway, just like with getCacheDir().
2、External files are not always available: they will disappear if the user mounts the external storage on a computer or removes it. See the APIs on Environment for information in the storage state.
3、There is no security enforced with these files. All applications can read and write files placed here.