Appearance
分布式文件系统
鸿蒙分布式文件系统:多设备文件统一管理与访问。
1. 分布式文件系统概述
1.1 核心能力
| 能力 | 说明 | |---|-|-| | 文件共享 | 多设备间文件共享 | | 统一命名 | 跨设备文件统一命名空间 | | 访问透明 | 文件访问与应用层透明 | | 权限控制 | 设备间文件访问权限 |
1.2 应用场景
应用:
├─ 手机文件 → 平板直接打开
├─ 电脑/平板文件互通
├─ 家庭NAS文件共享
└─ 企业文件管理2. 文件共享
2.1 共享文件
typescript
import { fileSharing } from '@kit.DistributedFileKit'
// 共享文件目录
let shareDir = await fileSharing.createShareDirectory({
name: 'shared_files',
members: ['device_1', 'device_2', 'device_3']
})
// 监听共享目录变化
shareDir.on('fileAdded', (filePath: string) => {
console.log('新文件:', filePath)
})
shareDir.on('fileRemoved', (filePath: string) => {
console.log('文件删除:', filePath)
})
// 向共享目录写入文件
let fd = fs.openSync(`${shareDir.path}/report.pdf`, fs.OpenMode.CREATE_WRITE)
fs.writeSync(fd, fileContent)
fs.closeSync(fd)3. 远程文件访问
3.1 远程文件读取
typescript
// 访问远程设备上的文件
let remoteFile = await fileSharing.openRemoteFile({
deviceId: 'remote_device_id',
filePath: '/data/storage/shared/report.pdf'
})
// 读取远程文件
let content = fs.readSync(remoteFile.fd)
let data = JSON.parse(new TextDecoder().decode(content))
// 关闭远程文件
fs.closeSync(remoteFile.fd)4. 面试高频考点
Q1: 分布式文件系统的作用?
回答:多设备文件统一命名空间、共享访问。应用层透明,像访问本地文件一样访问远程文件。
Q2: 如何实现文件共享?
回答:通过 fileSharing API 创建共享目录,配置成员设备,监听文件变化事件。
🐱 小猫提示:分布式文件系统记住 "统一命名空间、共享目录、远程透明访问、监听变化"。