用户文件概述
用户文件:文件所有者为登录到该终端设备的用户,包括用户私有的图片、视频、音频、文档等。
OpenHarmony提供用户文件访问框架,用于开发者访问和管理用户文件,将在下文详细介绍。
用户文件存储位置
内置存储
内置存储,是指用户文件存储在终端设备的内部存储设备(空间)上。内置存储设备无法被移除。内置存储的用户文件主要有:
-
用户特有的文件:这部分文件归属于登录该设备的用户,不同用户登录后,仅可看到该用户自己的文件。 按照这些文件的特征/属性,以及用户/应用的使用习惯,可分为:
-
图片/视频类媒体文件 所具有的特征包括拍摄时间、地点、旋转角度、文件宽高等信息,以媒体文件的形式存储在系统中,通常是以所有文件、相册的形式对外呈现,不会展示其在系统中存储的具体位置。
-
音频类媒体文件 所具有的特征包括所属专辑、音频创作者、持续时间等信息,以媒体文件的形式存储在系统中,通常会以所有文件、专辑、作家等形式对外部呈现,不会展示其在系统中存储的具体位置。
-
其他文件(统称为文档类文件) 以普通文件的形式存储在系统中,该类文件既包括普通的文本文件、压缩文件等,又包括以普通文件形式存储的图片/视频、音频文件,该类文件通常是以目录树的形式对外展示。
-
-
多用户共享的文件:用户可以通过将文件放在共享文件区,实现多个用户之间文件的共享访问。 共享文件区的文件,也是以普通文件的形式存储在系统中,以目录树的形式对外展示。
外置存储
外置存储,是指用户文件存储在外置可插拔设备上(如SD卡、U盘等)。外置存储设备上的文件,和内置存储设备共享区文件一样,可以被所有登录到系统中的用户看到。
外置存储设备具备可插拔属性,因此系统提供了设备插拔事件的监听及挂载功能,用于管理外置存储设备,具体可参考管理外置存储设备(仅对系统应用开放)。
外置存储设备上的文件,全部以普通文件的形式呈现,和内置存储设备上的文档类文件一样,采用目录树的形式对外展示。
用户文件访问框架
用户文件访问框架(File Access Framework)是一套提供给开发者访问和管理用户文件的基础框架。该框架依托于OpenHarmony的ExtensionAbility组件机制,提供了一套统一访问用户文件的方法和接口。
图1 用户文件访问框架示意图
-
各类系统应用或三方应用(即图中的文件访问客户端)若需访问用户文件,如选择一张照片或保存多个文档等,可以通过拉起“文件选择器应用”来实现。
-
OpenHarmony系统预置了文件选择器应用FilePicker和文件管理器应用FileManager。
- FilePicker:系统预置应用,提供文件访问客户端选择和保存文件的能力,且不需要配置任何权限。FilePicker的使用指导请参见选择用户文件。
- FileManager:系统预置应用,终端用户可通过系统文件管理器实现查看文件、修改文件、删除文件(目录)、重命名文件(目录)、移动文件(目录)、创建文件(目录)等操作。
对于系统应用开发者,还可以按需开发自己的文件选择器或文件管理器应用。其中,选择器功能是管理器的子集,本文目前提供了管理器的开发指导,请参见开发用户文件管理器(仅对系统应用开放)。
-
File Access Framework(用户文件访问框架)的主要功能模块如下:
- File Access Helper:提供给文件管理器和文件选择器访问用户文件的API接口。
- File Access ExtensionAbility:提供文件访问框架能力,由内卡文件管理服务UserFileManager和外卡文件管理服务ExternalFileManager组成,实现对应的文件访问功能。
- UserFileManager:内卡文件管理服务,基于File Access ExtensionAbility框架实现,用于管理内置存储设备上的文件。
- ExternalFileManager:外卡文件管理服务,基于File Access ExtensionAbility框架实现,用于管理外置存储设备上的文件。