用户文件概述

用户文件:文件所有者为登录到该终端设备的用户,包括用户私有的图片、视频、音频、文档等。

  1. 用户文件存放在用户目录下,归属于该设备上登录的用户。

  2. 用户文件存储位置主要分为内置存储外置存储

  3. 应用对用户文件的创建、访问、删除等行为,需要提前获取用户授权,或由用户操作完成。

OpenHarmony提供用户文件访问框架,用于开发者访问和管理用户文件,将在下文详细介绍。

用户文件存储位置

内置存储

内置存储,是指用户文件存储在终端设备的内部存储设备(空间)上。内置存储设备无法被移除。内置存储的用户文件主要有:

  • 用户特有的文件:这部分文件归属于登录该设备的用户,不同用户登录后,仅可看到该用户自己的文件。 按照这些文件的特征/属性,以及用户/应用的使用习惯,可分为:

    • 图片/视频类媒体文件 所具有的特征包括拍摄时间、地点、旋转角度、文件宽高等信息,以媒体文件的形式存储在系统中,通常是以所有文件、相册的形式对外呈现,不会展示其在系统中存储的具体位置。

    • 音频类媒体文件 所具有的特征包括所属专辑、音频创作者、持续时间等信息,以媒体文件的形式存储在系统中,通常会以所有文件、专辑、作家等形式对外部呈现,不会展示其在系统中存储的具体位置。

    • 其他文件(统称为文档类文件) 以普通文件的形式存储在系统中,该类文件既包括普通的文本文件、压缩文件等,又包括以普通文件形式存储的图片/视频、音频文件,该类文件通常是以目录树的形式对外展示。

  • 多用户共享的文件:用户可以通过将文件放在共享文件区,实现多个用户之间文件的共享访问。 共享文件区的文件,也是以普通文件的形式存储在系统中,以目录树的形式对外展示。

外置存储

外置存储,是指用户文件存储在外置可插拔设备上(如SD卡、U盘等)。外置存储设备上的文件,和内置存储设备共享区文件一样,可以被所有登录到系统中的用户看到。

外置存储设备具备可插拔属性,因此系统提供了设备插拔事件的监听及挂载功能,用于管理外置存储设备,具体可参考管理外置存储设备(仅对系统应用开放)

外置存储设备上的文件,全部以普通文件的形式呈现,和内置存储设备上的文档类文件一样,采用目录树的形式对外展示。

用户文件访问框架

用户文件访问框架(File Access Framework)是一套提供给开发者访问和管理用户文件的基础框架。该框架依托于OpenHarmony的ExtensionAbility组件机制,提供了一套统一访问用户文件的方法和接口。

图1 用户文件访问框架示意图   User file access framework

  • 各类系统应用或三方应用(即图中的文件访问客户端)若需访问用户文件,如选择一张照片或保存多个文档等,可以通过拉起“文件选择器应用”来实现。

  • 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框架实现,用于管理外置存储设备上的文件。