中国总决赛
全球总决赛
学习进度
完成
省赛
能力分类
主要子系统
能力模型
文件系统、管理等

文件管理


文件管理概述


在操作系统中,存在各种各样的数据,按数据结构可分为:
结构化数据:能够用统一的数据模型加以描述的数据。常见的是各类数据库数据。在应用开发中,对结构化数据的开发活动隶属于数据管理模块。
非结构化数据:指数据结构不规则或不完整,没有预定义的数据结构/模型,不方便用数据库二维逻辑表来表现的数据。常见的是各类文件,如文档、图片、音频、视频等。在应用开发中,对非结构化数据的开发活动隶属于文件管理模块,将在下文展开介绍。

文件分类(考点)

在Core File Kit套件中,按文件所有者的不同,有如下文件分类模型,其示意图如下面文件分类模型示意图:
  • 应用文件:文件所有者为应用,包括应用安装文件、应用资源文件、应用缓存文件等。
  • 用户文件:文件所有者为登录到该终端设备的用户,包括用户私有的图片、视频、音频、文档等。
  • 系统文件:与应用和用户无关的其它文件,包括公共库、设备文件、系统资源文件等。这类文件不需要开发者进行文件管理,本文不展开介绍。
文件系统管理的文件存储位置(数据源位置)的不同,有如下文件系统分类模型:
  • 本地文件系统:提供本地设备或外置存储设备(如U盘、移动硬盘)的文件访问能力。本地文件系统是最基本的文件系统,本文不展开介绍。
  • 分布式文件系统:提供跨设备的文件访问能力。所谓跨设备,指文件不一定存储在本地设备或外置存储设备,而是通过计算机网络与其它分布式设备相连
文件分类模型示意图
notion image
 

Core File Kit(考点)

Core File Kit(文件基础服务)为开发者提供一套访问和管理应用文件和用户文件的能力。帮助用户更高效地管理、查找和备份各类文件,使用户能够轻松应对各种文件管理的需求。
Ability Kit: Core File Kit中用户文件访问框架依赖Ability Kit提供的Extension基础能力,受Ability Kit服务调度管理。
Core File Kit常见的使用场景:(考点)
  • 应用文件访问和文件分享。
  • 应用数据备份恢复。
  • 选择与保存用户文件。
  • 跨设备的文件访问和分享能力。
能力范围(考点)
  • 支持对应用文件进行查看、创建、读写、删除、移动、复制、获取属性等访问操作。
  • 支持应用文件上传到网络服务器和网络服务器下载网络资源文件到本地应用文件目录。
  • 支持获取当前应用的存储空间大小、指定文件系统的剩余空间大小和指定文件系统的总空间大小。
  • 支持应用分享文件给其它应用和使用其它应用分享的文件。
  • 支持应用接入数据备份恢复,在接入后,应用可通过修改配置文件定制备份恢复框架的行为,包括是否允许备份恢复、备份哪些数据。
  • 提供用户文件访问框架,用于开发者访问和管理用户文件。例如选择与保存用户文件。
  • 支持跨设备的文件访问和拷贝能力。
 

@ohos.file.fs (文件管理)(考点)

  • 该模块为基础文件操作API,提供基础文件操作能力,包括文件基本管理、文件目录管理、文件信息统计、文件流式读写等常用功能。
  • import fs from '@ohos.file.fs';

例题

8、应用可以通过 @ohos.file.fs 模块实现对应用文件进行查看、创建、读写、删除、移动、复制、获取属性等访问操作。不属于此模块提供基础文件操作能力的是?
A. 文件目录管理
B. 文件夹批量处理
C. 文件信息统计
D. 文件基本管理
答案解析:@ohos.file.fs该模块为基础文件操作API,提供基础文件操作能力,包括文件基本管理、文件目录管理、文件信息统计、文件流式读写等常用功能。
 
12.[多选题]
有关文件管理的能力范围,以下说法正确的有?
A:支持应用分享文件给其他应用和使用其他应用分享的文件。
B:支持应用触发数据备份恢复(仅对系统应用开放)。
C:支持跨设备的文件访问和拷贝能力。
D:支持对应用文件进行查看、创建、读写、删除、移动、复制、获取属性等访问操作。
正确答案:ABCD
答案解析:暂无
 
  1. 分布式文件系统提供跨设备的文件访问能力。所谓跨设备,指文件存储在外置存储设备。
正确
错误
答案解析:分布式文件系统:提供跨设备的文件访问能力。所谓跨设备,指文件不一定存储在本地设备或外置存储设备,而是通过计算机网络与其它分布式设备相连
 
  1. OpenHarmony 中文件管理功能支持应用接入数据备份恢复,在接入后,应用可通过修改配置文件定制备份恢复框架的行为,包括是否允许备份恢复、备份哪些数据。
正确
错误
 
22[判断题]
OpenHarmony中文件管理功能按文件所有者的不同,有本地文件系统、分布式文件系统两种分类模型。
A:错误
B:正确
正确答案:A
答案解析: OpenHarmony 中文件管理功能按文件所有者的不同,分为本地文件系统、分布式文件系统和受限文件系统三种分类模型,而不是两种。
 

应用文件(考点)!!!!!!


应用文件:文件所有者为应用,包括应用安装文件、应用资源文件、应用缓存文件等。(考点)

  • 设备上应用所使用及存储的数据,以文件、键值对、数据库等形式保存在一个应用专属的目录内。该专属目录我们称为“应用文件目录”,该目录下所有数据以不同的文件格式存放,这些文件即应用文件。(考点)
  • “应用文件目录”与一部分系统文件(应用运行必须使用的系统文件)所在的目录组成了一个集合,该集合称为“应用沙箱目录”,代表应用可见的所有目录范围。因此“应用文件目录”是在“应用沙箱目录”内的。
  • 系统文件及其目录对于应用是只读的;应用仅能保存文件到“应用文件目录”下,根据目录的使用规范和注意事项来选择将数据保存到不同的子目录中。
 

应用沙箱目录(考点)

应用沙箱是一种以安全防护为目的的隔离机制,避免数据受到恶意路径穿越访问。在这种沙箱的保护机制下,应用可见的目录范围即为“应用沙箱目录”。
  • 对于每个应用,系统会在内部存储空间映射出一个专属的“应用沙箱目录”,它是“应用文件目录”与一部分系统文件(应用运行必需的少量系统文件)所在的目录组成的集合。
  • 应用沙箱限制了应用可见的数据的最小范围。在“应用沙箱目录”中,应用仅能看到自己的应用文件以及少量的系统文件(应用运行必需的少量系统文件)。因此,本应用的文件也不为其他应用可见,从而保护了应用文件的安全。(考点)
  • 应用可以在“应用文件目录”下保存和处理自己的应用文件;系统文件及其目录对于应用是只读的;而应用若需访问用户文件,则需要通过特定API同时经过用户的相应授权才能进行。
应用沙箱目录 = 应用文件+ 少量系统文件。
notion image
 

应用沙箱路径(考点)

在应用沙箱保护机制下,应用无法获知除自身应用文件目录之外的其他应用或用户的数据目录位置及存在。同时,所有应用的目录可见范围均经过权限隔离与文件路径挂载隔离,形成了独立的路径视图,屏蔽了实际物理路径:
  • 如下图所示,在普通应用(也称三方应用)视角下,不仅可见的目录与文件数量限制到了最小范围,并且可见的目录与文件路径也与系统进程等其他进程看到的不同。我们将普通应用视角下看到的“应用沙箱目录”下某个文件或某个具体目录的路径,称为“应用沙箱路径”。
  • 从实际物理路径推导物理路径与沙箱路径并不是1:1的映射关系,沙箱路径总是少于系统进程视角可见的物理路径。有些调试进程视角下的物理路径在对应的应用沙箱目录是无法找到的,而沙箱路径总是能够找到其对应的物理路径。(考点)
notion image
 

应用文件上传下载(考点)

  • 应用可以将应用文件上传到网络服务器,也可以从网络服务器下载网络资源文件到本地应用文件目录。(考点)
  • 开发者可以使用上传下载模块(ohos.request)的上传接口将本地文件上传。文件上传过程使用系统服务代理完成。
当前上传应用文件功能,仅支持上传应用缓存文件路径(cacheDir)下的文件。使用上传下载模块接口,需申请相关权限:ohos.permission.INTERNET。(考点)
  • 开发者可以使用上传下载模块(ohos.request)的下载接口将网络资源文件下载到应用文件目录。对已下载的网络资源文件,开发者可以使用基础文件IO接口(ohos.file.fs)对其进行访问,使用方式与应用文件访问一致。文件下载过程使用系统服务代理完成。
当前网络资源文件仅支持下载至应用文件目录。使用上传下载模块接口,需申请相关权限:ohos.permission.INTERNET。(考点)
 

应用文件分享(考点)

应用文件分享是应用之间通过分享URI(Uniform Resource Identifier)或文件描述符FD(File Descriptor)的方式,进行文件共享的过程。由于FD分享的文件关闭FD后,无法再打开分享文件,因此不推荐使用,本文重点介绍URI分享方式。
  • 基于URI分享方式,应用可分享单个文件,通过ohos.app.ability.wantConstant的wantConstant.Flags接口只读或读写权限授权给其他应用。应用可通过ohos.file.fs的open()接口打开URI,并进行读写操作。当前OpenHarmony API 9仅支持临时授权,分享给其他应用的文件在被分享应用退出时权限被收回。
  • 基于FD分享方式,应用可分享单个文件,通过ohos.file.fs的open接口以指定权限授权给其他应用。应用从Want中解析拿到FD后可通过ohos.file.fs的读写接口对文件进行读写。
 

文件URI格式(考点)

文件URI的格式为:file://<bundleName>/<path>
  • file:文件URI的标志。
  • bundleName:该文件资源的属主。
  • path:文件资源在应用沙箱中的路径。
 

应用文件访问与管理(考点)

  • 应用需要对应用文件目录下的应用文件进行查看、创建、读写、删除、移动、复制、获取属性等访问操作。开发者通过基础文件操作接口(ohos.file.fs)实现应用文件访问能力。
 

例题

3.[单选题]
应用文件:文件所有者为应用,不包括哪—项?
A:应用资源文件
B:应用缓存文件
C:应用安装文件
D:应用垃圾文件
正确答案:D
答案解析:文件所有者为应用,包括应用安装文件、应用资源文件、应用缓存文件等。
4.[单选题]
应用可以将应用文件上传到网络服务器,也可以从网络服务器下载网络资源文件到本地应用文件目录,但是必须先完成对什么权限的申请
A: ohos.permission.DUMP
B: ohos.permission.INTERNET
C: ohos.permission.SET_NETWORK_INFO
D: ohos.permission.DOWNLOAD_SESSION_MANAGER
正确答案:B
答案解析:使用上传下载模块接口,需申请相关权限:ohos.permission.INTERNET。
7.[单选题]
设备上应用所使用及存储的数据,以文件、键值对、数据库等形式保存在一个应用专属的目录内。该专属目录我们称为?
A: 应用沙箱目录
B: 系统文件目录
C: 应用文件目录
D: 用户文件目录
正确答案:C
答案解析:设备上应用所使用及存储的数据,以文件、键值对、数据库等形式保存在一个应用专属的目录内。该专属目录我们称为“应用文件目录”,该目录下所有数据以不同的文件格式存放,这些文件即应用文件。
14.[单选题]
从实际物理路径推导物理路径与沙箱路径的映射关系,错误的说法为?
A: 有些调试进程视角下的物理路径在对应的应用沙箱目录是无法找到的
B: 1:1的映射关系
c: 沙箱路径总是少于系统进程视角可见的物理路径
D: 沙箱路径并不一定总是能够找到其对应的物理路径
正确答案:D???不应该选B吗?
答案解析:从实际物理路径推导物理路径与沙箱路径并不是1:1的映射关系,沙箱路径总是少于系统进程视角可见的物理路径。有些调试进程视角下的物理路径在对应的应用沙箱目录是无法找到的,而沙箱路径总是能够找到其对应的物理路径。
15.[单选题]
应用沙箱限制了应用可见的数据的最______范围?
A:小
B:有效
C:合适
D:大
正确答案:A
答案解析:暂无
5.[多选题]
应用文件分享基于URI分享方式,文件URI的格式说法正确的有?
A: bundleName:该文件资源的属主。
B: path:文件资源在应用沙箱中的路径。
C:文件URI的格式为: file://<bundleName>/<path>
D: file:文件URI的标志。
正确答案:ABCD
答案解析:暂无
19.[判断题]
文件管理支持应用文件上传到网络服务器和网络服务器下载网络资源文件到本地应用文件目录。
A:正确
B:错误
正确答案:A
答案解析:文件管理的功能通常包括支持将应用文件上传至网络服务器,以便在不同设备间共享或备份;同时也支持从网络服务器下载网络资源文件到本地应用文件目录,以满足用户获取和使用所需资源的需求。
 

用户文件


用户文件:文件所有者为登录到该终端设备的用户,包括用户私有的图片、视频、音频、文档等。
  1. 用户文件存放在用户目录下,归属于该设备上登录的用户。
  1. 用户文件存储位置主要分为内置存储外置存储
  1. 应用对用户文件的创建、访问、删除等行为,需要提前获取用户授权,或由用户操作完成。
 

内置存储(考点)

内置存储,是指用户文件存储在终端设备的内部存储设备(空间)上。内置存储设备无法被移除。内置存储的用户文件主要有:
  • 用户特有的文件:这部分文件归属于登录该设备的用户,不同用户登录后,仅可看到该用户自己的文件。按照这些文件的特征/属性,以及用户/应用的使用习惯,可分为:
    • 图片/视频类媒体文件
      • 所具有的特征包括拍摄时间、地点、旋转角度、文件宽高等信息,以媒体文件的形式存储在系统中,通常是以所有文件、相册的形式对外呈现,不会展示其在系统中存储的具体位置。
    • 音频类媒体文件
      • 所具有的特征包括所属专辑、音频创作者、持续时间等信息,以媒体文件的形式存储在系统中,通常会以所有文件、专辑、作家等形式对外部呈现,不会展示其在系统中存储的具体位置。
    • 其他文件(统称为文档类文件)
      • 以普通文件的形式存储在系统中,该类文件既包括普通的文本文件、压缩文件等,又包括以普通文件形式存储的图片/视频、音频文件,该类文件通常是以目录树的形式对外展示。
  • 多用户共享的文件:用户可以通过将文件放在共享文件区,实现多个用户之间文件的共享访问。
    • 共享文件区的文件,也是以普通文件的形式存储在系统中,以目录树的形式对外展示。
 

外置存储

外置存储,是指用户文件存储在外置可插拔设备上(如SD卡、U盘等)。外置存储设备上的文件,和内置存储设备共享区文件一样,可以被所有登录到系统中的用户看到。
外置存储设备具备可插拔属性,因此系统提供了设备插拔事件的监听及挂载功能,用于管理外置存储设备,当前仅对系统应用开放。
外置存储设备上的文件,全部以普通文件的形式呈现,和内置存储设备上的文档类文件一样,采用目录树的形式对外展示。
 

用户文件访问框架

用户文件访问框架(File Access Framework)是一套提供给开发者访问和管理用户文件的基础框架。该框架依托于HarmonyOS的ExtensionAbility组件机制,提供了一套统一访问用户文件的方法和接口。
notion image
应用(即图中的文件访问客户端)若需访问用户文件,如选择一张照片或保存多个文档等,可以通过拉起“文件选择器应用”来实现。
HarmonyOS系统预置了文件选择器应用FilePicker文件管理器应用FileManager
  • FilePicker:系统预置应用,提供文件访问客户端选择和保存文件的能力,且不需要配置任何权限。FilePicker的使用指导请参见选择用户文件。
  • FileManager:系统预置应用,终端用户可通过系统文件管理器实现查看文件、修改文件、删除文件(目录)、重命名文件(目录)、移动文件(目录)、创建文件(目录)等操作。
File Access Framework(用户文件访问框架)的主要功能模块如下:
  • File Access Helper:提供给文件管理器和文件选择器访问用户文件的API接口,应用不可直接调用。
  • File Access ExtensionAbility:提供文件访问框架能力,由内卡文件管理服务UserFileManager和外卡文件管理服务ExternalFileManager组成,实现对应的文件访问功能。
 

选择用户文件(FilePicker)

终端用户有时需要分享、保存一些图片、视频等用户文件,开发者需要在应用中支持此类使用场景。此时,开发者可以使用HarmonyOS系统预置文件选择器(FilePicker),实现用户文件选择及保存能力。(在应用需要时申请权限)
根据用户文件的常见类型,文件选择器(FilePicker)分别提供以下接口:
  • PhotoViewPicker:适用于图片或视频类文件的选择与保存。
  • DocumentViewPicker:适用于文档类文件的选择与保存。
  • AudioViewPicker:适用于音频类文件的选择与保存。
 

保护用户文件

在从网络下载文件到本地、或将已有用户文件另存为新的文件路径等场景下,需要使用FilePicker提供的保存用户文件的能力
对音频、图片、视频、文档类文件的保存操作类似,均通过调用对应picker的save()接口并传入对应的saveOptions来实现
 

例题

  1. 外置存储设备上的文件,全部以特殊文件的形式呈现,和内置存储设备上的文档类文件有所区别,采用目录树的形式对外展示。
正确
错误
答案解析:外置存储设备上的文件,全部以普通文件的形式呈现,和内置存储设备上的文档类文件一样,采用目录树的形式对外展示。
 
  1. FilePicker 为系统预置应用,提供文件访问客户端选择和保存文件的能力,需要配置文件访问权限。
正确
错误
答案解析:开发者可以使用HarmonyOS系统预置文件选择器(FilePicker),实现用户文件选择及保存能力。(在应用需要时申请权限)
 
5.[判断题]
内置存储,是指用户文件存储在终端设备的内部存储设备(空间)上。内置存储设备无法被移除。
A:正确
B:错误
正确答案:A
答案解析:暂无
 

分布式文件系统


分布式文件系统概述

分布式文件系统(hmdfs,HarmonyOS Distributed File System)提供跨设备的文件访问能力,适用于如下场景:
  • 两台设备组网,用户可以利用一台设备上的编辑软件编辑另外一台设备上的文档。
  • 平板保存的音乐,车载系统直接可见并可播放。
  • 户外拍摄的照片,回家打开平板直接访问原设备拍摄的照片。
hmdfs在分布式软总线动态组网的基础上,为网络上各个设备结点提供一个全局一致的访问视图,支持开发者通过基础文件系统接口进行读写访问,具有高性能、低延时等优点。
 

分布式文件系统架构

notion image
  • distributedfile_daemon:主要负责设备上线监听、通过软总线建立链路,并根据分布式的设备安全等级执行不同的数据流转策略。
  • hmdfs:实现在内核的网络文件系统,包括缓存管理、文件访问、元数据管理和冲突管理等。
    • 缓存管理
      • 设备分布式组网后,hmdfs提供文件的互访能力,但不会主动进行文件数据传输和拷贝。如果应用需要将数据保存到本地,需主动拷贝。
      • hmdfs保证Close-to-Open的一致性,即一端写关闭后,另外一端可以读取到最新数据,不保证文件内容的实时一致性。
      • 数据在远端写入,但是由于网络原因未及时回刷,文件系统会在下次网络接入时回刷本地,但是如果远端已修改则无法回刷。
  • 文件访问
    • 文件访问接口与本地一致(ohos.file.fs)。
    • 如果文件在本地,则堆叠访问本地文件系统。
    • 如果文件在其他设备,则同步网络访问远端设备文件。
    • symlink:不支持。
  • 元数据管理
    • 分布式组网下,文件一端创建、删除、修改,另一端可以“立即”查看到最新文件,看到速度取决于网络情况。
    • 远端设备离线后,该设备数据将不再在本端设备呈现。但由于设备离线的感知具有延迟,可能会造成部分消息4s超时,因此开发者需要考虑接口的网络超时或一些文件虽然可以看到,但实际设备可能已离线的场景。
  • 冲突处理
    • 本地与远端冲突 ,远端文件被重命名,看到的同名文件是本地同名文件,远端文件被重命名。
    • 远端多个设备冲突,以接入本设备ID为顺序,显示设备ID小的同名文件,其他文件被依次重命名。
    • 如果组网场景,目录树下已经有远端文件,创建同名文件,提示文件已存在。
    • 冲突文件显示_conflict_dev后依次加id,id从1自动递增。
    • 同名目录之间仅融合不存在冲突,文件和远端目录同名冲突,远端目录后缀加_remote_directory。

设置分布式文件数据等级

不同设备本身的安全能力差异较大,一些小的嵌入式设备安全能力远弱于平板等设备类型。用户或者应用不同的文件数据有不同安全诉求,例如个人的健康信息和银行卡信息等不期望被弱设备读取。因此,HarmonyOS提供一套完整的数据分级、设备分级标准,并针对不同设备制定不同的数据流转策略,具体规则请参见数据、设备安全分级。
接口说明
接口名
功能
接口类型
支持同步
支持异步
setSecurityLabel
设置文件安全标签
方法
getSecurityLabel
获取文件安全标签
方法
1. 对于不满足安全等级的文件,跨设备仍然可以看到该文件,但是无权限打开访问该文件。
2. 分布式文件系统的数据等级默认为S3,应用可以主动设置文件的安全等级。
 

跨设备文件访问

分布式文件系统为应用提供了跨设备文件访问的能力,开发者在多个设备安装同一应用时,通过基础文件接口,可跨设备读写其他设备该应用分布式文件路径(/data/storage/el2/distributedfiles/)下的文件。例如:多设备数据流转的场景,设备组网互联之后,设备A上的应用可访问设备B同应用分布式路径下的文件,当期望应用文件被其他设备访问时,只需将文件移动到分布式文件路径即可。
Loading...
Koreyoshi
Koreyoshi
一个无可救药的乐观主义者
Latest posts
软件测试:集成测试
2025-3-25
软件测试:控制流测试
2025-3-25
软件测试:系统测试
2025-3-25
软件测试:数据流测试
2025-3-25
软件测试:测试驱动开发
2025-3-25
软件工程:面向对象的概念和记号
2025-3-24
Announcement
🎉写给自己的2025心愿🎉
保研
国奖
完善博客
学一门乐器
发表一篇论文
拍摄人生照片
去3个城市旅游
专业课知识视频
拍摄毕业季视频
----- 2025 ------
👏希望我们一起变好👏