Skip to content

分布式文件系统

鸿蒙分布式文件系统:多设备文件统一管理与访问。


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 创建共享目录,配置成员设备,监听文件变化事件。


🐱 小猫提示:分布式文件系统记住 "统一命名空间、共享目录、远程透明访问、监听变化"