美文网首页
Android文件存储小结

Android文件存储小结

作者: Passon_Fang | 来源:发表于2018-05-04 17:01 被阅读18次

文件目录分类

属于应用的文件夹:

Context.getFilesDir(): /data/user/0/com.njfae.filesavedemo/files
Context.cacheDir(): /data/user/0/com.njfae.filesavedemo/cache
Context.externalCacheDir(): /storage/emulated/0/Android/data/com.njfae.filesavedemo/cache
Context.getExternalFilesDir(type): /storage/emulated/0/Android/data/com.njfae.filesavedemo/files/type

不属于应用的文件夹:

Environment.getExternalStorageDirectory(): /storage/emulated/0
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM): /storage/emulated/0/DCIM

注意:

  1. 带有 cache 的表示缓存文件
  2. 属于应用的文件夹里面的文件容易被一些第三方文件清理软件清理
  3. 系统设置中点击 清理缓存 会清理所有缓存文件中的文件,清理数据 会清理所有属于应用的文件
  4. external 相关的目录不一定有,在手机和电脑做文件交互的时候会被移除。

权限问题

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

属于应用的文件夹的操作不需要权限, 不属于应用的文件夹需要权限

SDCard 不存在问题

在获取应用目录的时候加一个判断。

public File getDiskCacheDir(Context context, String uniqueName) {  
    String cachePath;  
    if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())  
            || !Environment.isExternalStorageRemovable()) {  
        cachePath = context.getExternalCacheDir().getPath();  
    } else {  
        cachePath = context.getCacheDir().getPath();  
    }  
    return new File(cachePath + File.separator + uniqueName);  
}

使用 DiskLruCache 实现缓存文件夹最大内存的限制

DiskLruCache

FileProvider

作用:Android 7.0 之后和其他应用做文件交互的时候使用。

用于生成 Uri。

相关文章

  • Android文件存储小结

    文件目录分类 属于应用的文件夹: 不属于应用的文件夹: 注意: 带有 cache 的表示缓存文件 属于应用的文件夹...

  • Android - 文件系统与Android11 分区存储

    *认识Android文件系统 *了解分区存储 *分区存储的适配 一、Android文件系统 Android文件系统...

  • Android数据持久化之文件存储

    参考:Android 中的文件操作Android文件存储总结存储选项-AndroidDevelopers 一. 文...

  • android存储

    Android中的存储 参考 彻底搞懂Android文件存储---内部存储,外部存储以及各种存储路径解惑[http...

  • Android storage

    Android存储结构android中的文件操作详解以及内部存储和外部存储彻底理解android中的内部存储与外部...

  • android基础-文件存储目录

    知识点 android常见的文件保存路径的意义 android开发中常用文件存储相关api 文件存储分类 在如今的...

  • Android文件存储总结

    存储路径及演化 首先看这张文件从Android文件存储使用参考转载的存储结构图,里面明确了通过各种Android接...

  • Android数据存储(三)

    前面两篇文章Android数据存储(一)和Android数据存储(二)分别使用文件存储、SharedPrefere...

  • Room使用

    Android 应用数据存储简单来说有这么几种: 文件存储 SharedPreference 存储 SQLite ...

  • 小知识点(二)android的数据存储与mysql

    Android存储分为三类:学习笔记| AS入门(七) 数据存储篇 - 简书 一.文件存储 在Android中写入...

网友评论

      本文标题:Android文件存储小结

      本文链接:https://www.haomeiwen.com/subject/snzdrftx.html