博客
关于我
getExternalStorageDirectory()和getExternalFilesDir()的区别
阅读量:208 次
发布时间:2019-02-28

本文共 1297 字,大约阅读时间需要 4 分钟。

Android应用程序的文件存储与管理是开发者需要特别关注的问题。以下将详细介绍Android系统中文件存储的不同方式以及如何正确管理它们。

1. App专属文件

App专属文件是指那些在删除应用时会一起被删除的文件。这些文件可以存储在两个地方:internal storage和external storage。

Internal Storage

Internal storage是安卓设备自带的一块存储区域,容量通常较小。由于external storage可能会被用户卸载或更换,因此internal storage是存储重要数据的最佳选择。常见的存储内容包括:

  • 重要的数据库文件
  • 用户配置文件
  • 某些大型图片或缓存文件

internal storage的默认目录结构为:

data/data/
/files/

开发者可以通过以下方法访问internal storage:

File filesDir = getFilesDir();Log.i(TAG, "file_dir=" + filesDir);

External Storage

External storage通常指的是SD卡存储区域,容量较大(如16GB、32GB等)。这些文件应该存储在以下路径中:

mnt/sdcard/Android/data/
/files/

要访问external storage,需要在AndroidManifest.xml中添加相应的权限:

通过以下方法可以获取external storage的文件目录:

File externalFilesDir = getExternalFilesDir(null);Log.i(TAG, "externalFileDir=" + externalFilesDir);

如果需要访问特定的子文件夹(如"Caches"),可以传递该子文件夹名称:

File externalFilesDir = getExternalFilesDir("Caches");Log.i(TAG, "externalFileDir=" + externalFilesDir);

2. App独立文件

App独立文件是指那些即使删除应用也不会被删除的文件。这些文件通常存储在以下路径中:

mnt/sdcard/Android/data/
/files/

要访问这些文件,需要使用以下方法:

File externalFilesDir = getExternalFilesDir(null);Log.i(TAG, "externalFileDir=" + externalFilesDir);

如果SD卡未安装,可以先判断外部存储是否可用:

if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {    // SD卡已安装}

通过合理规划文件存储位置,可以确保应用的数据安全,以及在应用卸载后文件的正确删除。

转载地址:http://fbgs.baihongyu.com/

你可能感兴趣的文章
Node-RED中使用json节点解析JSON数据
查看>>
Node-RED中使用node-random节点来实现随机数在折线图中显示
查看>>
Node-RED中使用node-red-browser-utils节点实现选择Windows操作系统中的文件并实现图片预览
查看>>
Node-RED中使用node-red-contrib-image-output节点实现图片预览
查看>>
Node-RED中使用node-red-node-ui-iframe节点实现内嵌iframe访问其他网站的效果
查看>>
Node-RED中使用Notification元件显示警告讯息框(温度过高提示)
查看>>
Node-RED中使用range范围节点实现从一个范围对应至另一个范围
查看>>
Node-RED中实现HTML表单提交和获取提交的内容
查看>>
Node-RED中将CSV数据写入txt文件并从文件中读取解析数据
查看>>
Node-RED中建立TCP服务端和客户端
查看>>
Node-RED中建立Websocket客户端连接
查看>>
Node-RED中建立静态网页和动态网页内容
查看>>
Node-RED中解析高德地图天气api的json数据显示天气仪表盘
查看>>
Node-RED中连接Mysql数据库并实现增删改查的操作
查看>>
Node-RED中通过node-red-ui-webcam节点实现访问摄像头并截取照片预览
查看>>
Node-RED中配置周期性执行、指定时间阶段执行、指定时间执行事件
查看>>
Node-RED安装图形化节点dashboard实现订阅mqtt主题并在仪表盘中显示温度
查看>>
Node-RED怎样导出导入流程为json文件
查看>>
Node-RED订阅MQTT主题并调试数据
查看>>
Node-RED通过npm安装的方式对应卸载
查看>>