app文件目录的选择

应用程序在运行的过程中如果需要向手机上保存数据,一般是把数据保存在SDcard中的。

大部分应用是直接在SDCard的根目录下创建一个文件夹,然后把数据保存在该文件夹中。
这样当该应用被卸载后,这些数据还保留在SDCard中,留下了垃圾数据。

如果你想让你的应用被卸载后,与该应用相关的数据也清除掉,该怎么办呢?

通过Context.getExternalFilesDir()方法可以获取到 SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据
通过Context.getExternalCacheDir()方法可以获取到 SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据

如果使用上面的方法,当你的应用在被用户卸载后,SDCard/Android/data/你的应用的包名/ 这个目录下的所有文件都会被删除,不会留下垃圾信息。

通过Context.getFilesDir()方法可以获取到/data/data/youPackageName/files这个目录,一般放一些短时间保存的数据,同样引用卸载后,这个目录下的数据也会删除,不会留下垃圾信息。

而且上面二个目录分别对应 设置->应用->应用详情里面的”清除数据“与”清除缓存“选项

总结一下android 中的几种目录:

一、 files
1. Context.getFilesDir(),该方法返回/data/data/youPackageName/files的File对象。
2. Context.openFileInput()与Context.openFileOutput(),只能读取和写入files下的文件,返回的是FileInputStream和FileOutputStream对象。
3. Context.fileList(),返回files下所有的文件名,返回的是String[]对象。
4. Context.deleteFile(String),删除files下指定名称的文件。

5. Context.getExternalFilesDir()方法可以获取到 SDCard/Android/data/youPackageName/files/ 目录,一般放一些长时间保存的数据

二、cache
1. Context.getCacheDir(),该方法返回 /data/data/youPackageName/cache的File对象,这个文件里面的数据在设备内存不足的时候,会被系统删除数据。注意:你不能依赖系统帮你删除这些文件,当这个文件夹里面的数据超过1MB的时候,系统会删除这个文件夹里面的数据。

2. Context.getExternalCacheDir()方法可以获取到 SDCard/Android/data/youPackageName/cache/目录,一般存放临时缓存数据

三、custom dir

getDir(String name, int mode),返回 /data/data/youPackageName/ 下的指定名称的文件夹File对象,如果该文件夹不存在则用指定名称创建一个新的文件夹。

创建文件的权限

MODE_PRIVATE:说明该文件只能被当前的应用程序所读写

MODE_APPEND:以追加方式打开该文件,应用程序可以向该文件中追加内容。

MODE_WORLD_READABLE:该文件的内容可以被其他的应用程序所读取

MODE_WORLD_WRITEABLE:该文件的内容可以被其他的应用程序所读、写

发布了84 篇原创文章 · 获赞 35 · 访问量 13万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览