美文网首页
Android文件各种存储路径的比较(转)

Android文件各种存储路径的比较(转)

作者: 是我拉叔 | 来源:发表于2019-08-06 09:32 被阅读0次

https://blog.csdn.net/csdn_aiyang/article/details/80665185

Android文件各种存储路径的比较

1、File cacheDir = context.getCacheDir();

应用内部存储空间(数据文件私有)文件存储到这个路径下,不需要申请权限,当应用被卸载的时候,目录下的文件会被删除。

需要注意的是,这个文件的目录和应用的存储位置有关,

当应用被移动到外部存储设备的时候,文件的绝对路径也是变化的,所以建议当数据存储到这个目录的时候,用相对路径。

这个目录和getFilesDir()目录最大的不同在于:当安卓设备的存储空间少,或者不够用的时候,系统会自动删除这个目录下的文件。

官方建议是,超过1MB的文件,建议存储到getExternalCacheDir()目录下

2、File filesDir = context.getFilesDir();

应用内部存储空间(数据文件私有)文件存储到这个路径下,不需要申请权限,当应用被卸载的时候,目录下的文件会被删除。

需要注意的是,这个文件的目录和应用的存储位置有关,

当应用被移动到外部存储设备的时候,文件的绝对路径也是变化的,所以建议当数据存储到这个目录的时候,用相对路径

系统提供的访问此路径文件的方法是:context.openFileOutput(String,int);context.openFileInput(String name);

3、File externalCacheDir = context.getExternalCacheDir();

应用外部存储空间(数据文件私有,系统媒体文件无法访问(例如存了一个MP3文件,通过系统的文件夹管理系统,无法找到)),

当应用被卸载的时候,目录下的文件会被删除,但是这里和getCacheDir()还有不同之处:

只有手机系统使用的是虚拟外部存储(虚拟SD卡,现在绝大多数的手机,都不用外挂物理SD卡了)的时候,

才可以在卸载应用的同时,自动删除该目录下的文件,如果是之前的物理存储(物理SD卡)则不会自动删除该目录,及目录下的文件。

在使用的时候,需要判断外部存储的挂载状态(getExternalStorageState(File)),还需要申请读写权限(READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE)

注:当其他应用拥有SD卡读写权限的时候,可以访问该目录下的文件

4、File externalFilesDir = context.getExternalFilesDir(null);

应用外部存储空间(数据文件私有,系统媒体文件无法访问(例如存了一个MP3文件,通过系统的文件夹管理系统,无法找到)),

当应用被卸载的时候,目录下的文件会被删除,但是这里和getFilesDir()还有不同之处:

只有手机系统使用的是虚拟外部存储(虚拟SD卡)的时候,

才可以在卸载应用的同时,自动删除该目录下的文件,如果是之前的物理存储(物理SD卡)则不会自动删除该目录,及目录下的文件

在使用的时候,需要判断外部存储的挂载状态(getExternalStorageState(File)),还需要申请读写权限(READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE)

注:当其他应用拥有SD卡读写权限的时候,可以访问该目录下的文件

5、File externalStorageDirectory = Environment.getExternalStorageDirectory();

应用外部存储空间(数据文件非私有,可以被手机的系统程序访问(如MP3格式的文件,会被手机系统检索出来),同样,该目录下的文件,所有的APP程序也都是可以访问的,)

注意:外部存储空间可能处于不可访问状态,或者已经被移除状态,或者存储空间损坏无法访问等问题。可以通过getExternalStorageState()这个方法来判断外部存储空间的状态。

注:在该目录下读写文件,需要获取读写权限

该目录下的文件,这个目录是用户进行操作的一个根目录,进入二级目录可以通过

getExternalFilesDirs(String), getExternalCacheDirs(), and getExternalMediaDirs().这些方法

官方建议,不要直接使用该目录,为了避免污染用户的根命名空间,应用私有的数据,应该放在 Context.getExternalFilesDir目录下

其他的可以被分享的文件,可以放在getExternalStoragePublicDirectory(String).目录下

6、File externalStoragePublicDirectory = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);

应用外部存储空间(数据文件非私有,可以被手机的系统程序访问(如MP3格式的文件,会被手机系统检索出来),同样,该目录下的文件,所有的APP程序也都是可以访问的,)

这个目录是用来存放各种类型的文件的目录,在这里用户可以分类管理不同类型的文件(例如音乐、图片、电影等);

类型如下: DIRECTORY_MUSIC, DIRECTORY_PODCASTS, DIRECTORY_RINGTONES, DIRECTORY_ALARMS, DIRECTORY_NOTIFICATIONS, DIRECTORY_PICTURES, DIRECTORY_MOVIES, DIRECTORY_DOWNLOADS, DIRECTORY_DCIM, or DIRECTORY_DOCUMENTS

相关文章

  • Android文件各种存储路径的比较(转)

    https://blog.csdn.net/csdn_aiyang/article/details/8066518...

  • android存储

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

  • Android 文件存储路径区分

    前言 查了很多资料,最终归结为如下内容 1.资料参考 Android文件各种存储路径的比较彻底了解android中...

  • Android文件存储总结

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

  • android基础-文件存储目录

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

  • Android文件存储路径

    手机存储分为三块区域1.内部存储2.SD卡存储(Primary External Storage)3.外置sd卡(...

  • android 文件存储路径

    外部存储external storage和内部存储internal **storage****** 1、内部存储 ...

  • Android 文件存储路径

    1、Environment.getExternalStorageState(); //获取SD卡的存储状态2、...

  • android各种路径

    Android中获取各种路径的方法 通过Environment获取的 //获得根目录/data (内部存储路径) ...

  • 安卓获取文件夹路径

    目的:获取sd卡根目录下的文件夹 推荐一篇关于安卓路径的文章彻底搞懂Android文件存储---内部存储,外部存储...

网友评论

      本文标题:Android文件各种存储路径的比较(转)

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