Android getCacheDir和getFilesDir区别

Android getCacheDir和getFilesDir区别

原创  2015年06月12日 12:01:58
  • 5080

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

下面是我自己的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()目录下(也可以是其他的目录下)创建自己项目文件夹。把想要保存的内容放在里面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值