概述
用户文件:文件所有者为登录到该终端设备的用户,包括用户私有的 图片、视频 、音频、文档等。
-
用户文件存放在用户目录下,归属于该设备上登录的用户。
-
用户文件存储位置主要分为 内置存储 、 外置存储 。
-
应用对用户文件的创建、访问、删除等行为,需要提前获取用户授权,或由用户操作完成。
用户文件存储位置
内置存储
内置存储,是指用户文件存储在终端设备的内部存储设备(空间)上。内置存储设备无法被移除。内置存储的用户文件主要有:
- 用户特有的文件:这部分文件归属于登录该设备的用户,不同用户登录后,仅可看到该用户自己的文件。
按照这些文件的特征/属性,以及用户/应用的使用习惯,可分为:
- 图片/视频类媒体文件
所具有的特征包括拍摄时间、地点、旋转角度、文件宽高等信息,以媒体文件的形式存储在系统中,通常是以所有文件、相册的形式对外呈现,不会展示其在系统中存储的具体位置。
- 音频类媒体文件
所具有的特征包括所属专辑、音频创作者、持续时间等信息,以媒体文件的形式存储在系统中,通常会以所有文件、专辑、作家等形式对外部呈现,不会展示其在系统中存储的具体位置。
- 其他文件(统称为文档类文件)
以普通文件的形式存储在系统中,该类文件既包括普通的文本文件、压缩文件等,又包括以普通文件形式存储的图片/视频、音频文件,该类文件通常是以目录树的形式对外展示。
- 多用户共享的文件:用户可以通过将文件放在共享文件区,实现多个用户之间文件的共享访问。
共享文件区的文件,也是以普通文件的形式存储在系统中,以目录树的形式对外展示。
外置存储
外置存储,是指用户文件存储在外置可插拔设备上(如SD卡、U盘等)。外置存储设备上的文件,和内置存储设备共享区文件一样,可以被所有登录到系统中的用户看到。
外置存储设备具备可插拔属性,因此系统提供了设备插拔事件的监听及挂载功能,用于管理外置存储设备,,该部分功能仅对系统应用开放。
外置存储设备上的文件,全部以普通文件的形式呈现,和内置存储设备上的文档类文件一样,采用目录树的形式对外展示。
uri介绍
用户文件uri是文件的唯一标识,在对用户文件进行访问与修改等操作时往往都会使用到uri,不建议开发者解析uri中的片段用于业务代码开发,不同类型的uri使用方式将在下文详细介绍。
uri的类型
uri类型可以归纳为文档类uri和媒体文件uri两类
- 文档类uri:由picker拉起文件管理器选择或保存返回,以及通过fileAccess模块获取。具体获取方式参见 文档类uri获取方式 。
- 媒体文件uri:由picker通过拉起图库选择图片或者视频返回,通过photoAccessHelper模块获取图片或者视频文件的uri,以及通过userFileManager模块获取图片、视频或者音频文件的uri。具体获取方式参见 媒体文件uri获取方式 。
文档类uri
文档类uri介绍
文档类uri的格式类型为:
‘file://docs/storage/Users/currentUser/<relative_path>/test.txt’
其中各个字段表示的含义为:
uri字段 | 说明 |
---|---|
‘file://docs/storage/Users/currentUser/’ | 文件管理器的根目录。 |
‘<relative_path>/’ | 文件在根目录下的相对路径。例如:'Download/‘和’Documents/’。 |
‘test.txt’ | 用户文件系统中存储的文件名,支持的文件类型为文件管理器支持的所有类型,以文件管理器为准,例如txt、jpg、mp4和mp3等格式的文件。 |
文档类uri获取方式
-
通过 DocumentViewPicker接口 选择或保存文件,返回选择或保存的文件uri。
-
通过 AudioViewPicker接口 选择或保存文件,返回选择或保存的文件uri。
-
通过 PhotoViewPicker.save接口 保存文件,返回保存的文件uri。
文档类uri的使用方式
normal等级的应用使用此类uri的方式只能通过 fs模块 进行进一步处理,其他模块使用此uri是会报没有权限的错误。示例代码参见picker中的 选择文档类文件 和 保存文档类文件 。
媒体文件uri
媒体文件uri介绍
媒体文件uri的格式类型为:
图片uri格式:
- ‘file://media/Photo//IMG_datetime_0001/displayName.jpg’<