鸿蒙OS 文件管理
在操作系统中,存在各种各样的数据。HarmonyOS 文件管理模块提供了丰富的 API,方便开发者安全高效地处理应用和用户文件。
一、文件分类
HarmonyOS 将文件分为三类:
- 应用文件: 应用私有文件,包括安装文件、资源文件、缓存文件等。
- 用户文件: 用户私有文件,例如图片、视频、音频、文档等。
- 系统文件: 与应用和用户无关的文件,例如系统库、设备文件等。
开发者主要关注应用文件和用户文件的管理。
二、文件系统类型
HarmonyOS 支持两种文件系统:
- 本地文件系统: 提供对本地设备和外置存储设备 (如 U 盘) 的文件访问能力。
- 分布式文件系统: 提供跨设备的文件访问能力,文件可存储在本地或远程设备上。
三、应用文件管理
开发者可以使用 io
模块提供的 API 管理应用文件。
1. 访问应用资源文件:
import fs from '@ohos.file.fs'; // 引入文件系统模块
// 读取应用资源文件内容
fs.readFile('/data/storage/app/files/yourAppName/data.txt')
.then((data) => {
console.log('File content:', data.toString()); // 打印文件内容
})
.catch((error) => {
console.error('Failed to read file:', error); // 处理读取错误
});
2. 创建应用缓存文件:
import fs from '@ohos.file.fs'; // 引入文件系统模块
// 将数据写入应用缓存文件
fs.writeFile('/data/storage/app/cache/yourAppName/cache.json', JSON.stringify({ key: 'value' }))
.then(() => {
console.log('Cache file created successfully.'); // 创建缓存文件成功提示
})
.catch((error) => {
console.error('Failed to create cache file:', error); // 处理写入错误
});
四、用户文件管理
访问用户文件需要使用系统提供的文件选择器或申请相应的权限。
1. 使用文件选择器打开用户文件:
import filepicker from '@ohos.filepicker';
filepicker.showOpenFilePicker()
.then((fileInfos) => {
if (fileInfos && fileInfos.length > 0) {
let fileInfo = fileInfos[0];
console.log('Selected file:', fileInfo.uri);
}
})
.catch((error) => {
console.error('Failed to open file picker:', error);
});
2. 申请权限访问用户文件:
开发者需要在配置文件中声明需要访问的特定目录权限,例如:
"requestPermissions": [
{
"name": "ohos.permission.READ_USER_STORAGE", // 声明读取用户存储的权限
"reason": "需要读取用户存储空间中的文件", // 权限申请理由
"usedScene": {
"ability": [
"com.example.app.MainAbility" // 指定需要该权限的Ability
],
"when": "inuse" // 权限使用时机,例如“在使用时”
}
}
]