• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 用户文件概述
2
3用户文件:文件所有者为登录到该终端设备的用户,包括用户私有的图片、视频、音频、文档等。
4
51. 用户文件存放在用户目录下,归属于该设备上登录的用户。
6
72. 用户文件存储位置主要分为[内置存储](#内置存储)、[外置存储](#外置存储)。
8
93. 应用对用户文件的创建、访问、删除等行为,需要提前获取用户授权,或由用户操作完成。
10
11OpenHarmony提供[用户文件访问框架](#用户文件访问框架),用于开发者访问和管理用户文件,将在下文详细介绍。
12
13## 用户文件存储位置
14
15### 内置存储
16
17内置存储,是指用户文件存储在终端设备的内部存储设备(空间)上。内置存储设备无法被移除。内置存储的用户文件主要有:
18
19- 用户特有的文件:这部分文件归属于登录该设备的用户,不同用户登录后,仅可看到该用户自己的文件。
20    按照这些文件的特征/属性,以及用户/应用的使用习惯,可分为:
21  - 图片/视频类媒体文件
22    所具有的特征包括拍摄时间、地点、旋转角度、文件宽高等信息,以媒体文件的形式存储在系统中,通常是以所有文件、相册的形式对外呈现,不会展示其在系统中存储的具体位置。
23
24  - 音频类媒体文件
25    所具有的特征包括所属专辑、音频创作者、持续时间等信息,以媒体文件的形式存储在系统中,通常会以所有文件、专辑、作家等形式对外部呈现,不会展示其在系统中存储的具体位置。
26
27  - 其他文件(统称为文档类文件)
28    以普通文件的形式存储在系统中,该类文件既包括普通的文本文件、压缩文件等,又包括以普通文件形式存储的图片/视频、音频文件,该类文件通常是以目录树的形式对外展示。
29
30- 多用户共享的文件:用户可以通过将文件放在共享文件区,实现多个用户之间文件的共享访问。
31  共享文件区的文件,也是以普通文件的形式存储在系统中,以目录树的形式对外展示。
32
33### 外置存储
34
35外置存储,是指用户文件存储在外置可插拔设备上(如SD卡、U盘等)。外置存储设备上的文件,和内置存储设备共享区文件一样,可以被所有登录到系统中的用户看到。
36
37外置存储设备具备可插拔属性,因此系统提供了设备插拔事件的监听及挂载功能,用于管理外置存储设备,具体可参考[管理外置存储设备(仅对系统应用开放)](manage-external-storage.md)。
38
39外置存储设备上的文件,全部以普通文件的形式呈现,和内置存储设备上的文档类文件一样,采用目录树的形式对外展示。
40
41## 用户文件访问框架
42
43用户文件访问框架(File Access Framework)是一套提供给开发者访问和管理用户文件的基础框架。该框架依托于OpenHarmony的ExtensionAbility组件机制,提供了一套统一访问用户文件的方法和接口。
44
45**图1** 用户文件访问框架示意图  
46![User file access framework](figures/user-file-access-framework.png)
47
48- 各类系统应用或三方应用(即图中的文件访问客户端)若需访问用户文件,如选择一张照片或保存多个文档等,可以通过拉起“文件选择器应用”来实现。
49
50- OpenHarmony系统预置了文件选择器应用FilePicker和文件管理器应用FileManager。
51  - FilePicker:系统预置应用,提供文件访问客户端选择和保存文件的能力,且不需要配置任何权限。FilePicker的使用指导请参见[选择用户文件](select-user-file.md)。
52  - FileManager:系统预置应用,终端用户可通过系统文件管理器实现查看文件、修改文件、删除文件(目录)、重命名文件(目录)、移动文件(目录)、创建文件(目录)等操作。
53
54  对于系统应用开发者,还可以按需开发自己的文件选择器或文件管理器应用。其中,选择器功能是管理器的子集,本文目前提供了管理器的开发指导,请参见[开发用户文件管理器(仅对系统应用开放)](dev-user-file-manager.md)。
55
56- File Access Framework(用户文件访问框架)的主要功能模块如下:
57  - File Access Helper:提供给文件管理器和文件选择器访问用户文件的API接口。
58  - File Access ExtensionAbility:提供文件访问框架能力,由内卡文件管理服务UserFileManager和外卡文件管理服务ExternalFileManager组成,实现对应的文件访问功能。
59    - UserFileManager:内卡文件管理服务,基于File Access ExtensionAbility框架实现,用于管理内置存储设备上的文件。
60    - ExternalFileManager:外卡文件管理服务,基于File Access ExtensionAbility框架实现,用于管理外置存储设备上的文件。
61