Android getCacheDir和getFilesDir区别

最近在安卓的开发中,对系统提供的几个文件保存的路径探索了一下。

下面是我自己的demo中对不同的方法的路径打印出来的结果!

getCacheDir:/data/data/com.example.sinatext/cache
getFilesDir:/data/data/com.example.sinatext/files
 
getExternalCacheDir:/storage/sdcard0/Android/data/com.example.sinatext/cache

getExternalFilesDir:/storage/sdcard0/Android/data/com.example.sinatext/files/text


getDatabasePath:/data/data/com.example.sinatext/databases/text
getDir:/data/data/com.example.sinatext/app_modeDir
 
getPackageResourcePath:/data/app/com.example.sinatext-2.apk
Environment.getDataDirectory():/data
Environment.getExternalStorageState():mounted
Environment.getDownloadCacheDirectory():/cache
 
Environment.getExternalStorageDirectory():/storage/sdcard0

Environment.getRootDirectory():/system

前面是方法名,后面是对应的路径。

由上面可以看出来,

getCacheDir和getFilesDir是放在/data/data/packagename下的,所以这个目录中的内容必须是root的手机在文件操作系统中才能看到。当然如果在应用程序中清空数据或者卸载应用,那么这两个目录下的文件也将会被清空的。

getExternalCacheDir和getExternalFilesDir是存放在/storage/sdcard0/Android/data/packagename下面的,这个是放在外置存储卡的,这个目录下的内容 可以使用文件浏览系统查看到,但是如果清空数据或者卸载应用,俩个目录下的文件也将被清空。

或者也可以理解为带external这样的是存储在外置sd卡的(ps:external是外部的意思嘛),而直接使用getFilesDir这种是放在/data/data下面的。

但是不管上面的是放在外置存储sd卡的还是放在/data/data下的,如果应用清空数据或者应用卸载掉,都会被清除掉的,所以如果想要保存一些内容到手机,但是应用卸载掉不被删除的话就不能用上面的方法,要自己在Environment.getExternalStorageDirectory()目录下(也可以是其他的目录下)创建自己项目文件夹。把想要保存的内容放在里面。

你可能感兴趣的:(Android)