【Android】私有目录获取方法

cache缓存目录

上下文提供的 getCacheDir()

返回值方法获取路径
FilegetCacheDir()获取/data/user/packagename/cache目录,应用程序的缓存目录,该目录内的文件在设备内存不足时会优先被删除掉,所以存放在这里的文件是没有任何保障的

 files目录

上下文提供了两个方法,用于操作私有目录文件的输入和输出

返回值方法获取路径
FilegetFilesDir()获取/data/user/packagename/files目录
FileOutputStreamopenFileOutput(String fileName, int mode)

直接指定到/data/user/packagename/files/fileName目录下的文件.

四种模式Mode值:

  • MODE_PRIVATE
  • MODE_APPEND
  • MODE_WORLD_READABLE
  • MODE_WORLD_WRITEABLE

操作模式可以叠加,如:

openFileOutput("file.txt", MODE_PRIVATE + MODE_APPEND);

FileInputStreamopenFileInput(String fileName)直接指定到/data/user/packagename/files/fileName目录下的文件

四种模式,意义分别为(模式为Context中的字段值):

  • MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中,可以使用MODE_APPEND。
  • MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
  • MODE_WORLD_READABLE:表示该文件可以被其他应用读取。
  • MODE_WORLD_WRITEABLE:表示该文件可以被其他应用写入。

不传递参数MODE_WORLD_READABLEMODE_WORLD_WRITEABLE 模式则默认其它程序不可操作此程序在files目录下更改的new 新文件

shared_prefs键值对文件目录

SharedPreferences sp = Context.getSharedPreferences(String fileName, int mode);

 如果指定的文件为null,则会自动创建。

databases数据库目录

 查找指定名字的数据库文件,如果没有的话,会创建一个新的。创建数据库的时候,也需要指定模式:

SQLiteDatabase db = Context.openOrCreateDatabase(String dbName, int mode, CursorFactory factory);

 该方法将返回一个指向指定数据库文件的File对象: 

File dbFile = Context.getDatabasePath(String name);

databases/目录下全部数据库文件:

String[] dbsName = Context.databaseList();

如果指定名字的数据库文件被删除成功将返回true,反之返回false:

boolean Context.deleteDatabase(String dbName);

lib目录 

  • 这个子目录存放着的是应用程序需要使用的Native原生程序,即JNI调用需要加载的.so文件。
  • 这些文件一般是位于apk安装包里的lib目录下。在程序安装的时候,系统会将所有apk文件中lib目录下的所有原生程序拷贝到这个子目录下。
  • 该目录是程序不能操作的,不能在程序运行时,向该目录拷贝.so文件,然后再通过调用System.loadLibrary函数将其加载进来。

自定义目录

File Context.getDir(String name, int mode);

 该方法返回指向/data/data/<Package Name>/下指定名称的文件夹的一个File对象。如果该文件夹不存在则用指定名称创建一个新的文件夹。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虚妄狼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值