# CrossDeviceFileOperation **Repository Path**: harmonyos_codelabs/cross-device-file-operation ## Basic Information - **Project Name**: CrossDeviceFileOperation - **Description**: 跨设备文件操作 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-08-18 - **Last Updated**: 2025-09-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于Core File Kit(文件基础服务) 实现跨设备文件操作 ## 项目简介 本示例基于Core File Kit(文件基础服务),介绍多设备间跨设备文件访问与拷贝功能,涵盖分布式文件的创建、保存、写入、读取、预览等操作,实现跨设备查看、修改、拷贝等场景。 ## 效果预览 ## 使用说明 1. 首页填写文件名和文件内容,点击“确定”按钮创建文件,若需要修改填写内容,点击“清除”按钮。 2. 创建成功后,点击“远端文件”按钮,查看已创建好的文件。 3. 远端文件列表: - 右上角打开编辑状态,选择某一项文件,可在底部进行删除,或拷贝复制操作。左上角可取消编辑状态。 - 点击任意一项文件,进入预览界面。 4. 本地文件列表:页面功能和远端文件列表大致相同,区别在于: - 本地文件需要在远端文件列表中进行拷贝复制到本地。 - 编辑状态下无复制按钮。 5. 预览界面: - 点击编辑区域,自动进入编辑状态。 - 右上角对钩为编辑后保存按钮。 - 左上角叉号,如果进入编辑状态但未编辑,则直接返回上一页;如果进行了编辑,则弹窗询问是否保存,取消则撤回刚刚编辑内容,确定则保存内容。 ## 工程目录 ``` ├──entry/src/main/ets // 代码区 │ ├──entryability │ │ └──EntryAbility.ets // 程序入口类 │ ├──pages │ │ └──Index.ets // 应用主界面 │ ├──utils // 工具类 │ │ └──CommonUtils.ets // 公共工具类 │ └──view │ ├──DeleteDialog.ets // 删除弹窗组件 │ ├──EditTitleBar.ets // 编辑页顶部组件 │ ├──ListComp.ets // 列表组件 │ ├──Loading.ets // 加载弹窗组件 │ ├──LocalFileList.ets // 访问本地文件列表视图 │ ├──Preview.ets // 预览界面 │ ├──ProgressDialog.ets // 拷贝进度弹窗组件 │ ├──RemoteFileList.ets // 访问远端文件列表视图 │ ├──TitleBar.ets // 通用顶部栏组件 │ └──TitleBarDeleteDialog.ets // 通用顶部栏删除弹窗组件 └──entry/src/main/resources // 应用静态资源目录 ``` ## 具体实现 1. 获取当前应用分布式共享目录沙箱路径,通过[getUIContext()](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-custom-component-api#getuicontext)然后获取[getHostContext()](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/arkts-apis-uicontext-uicontext#gethostcontext12) ,随后访问distributedFilesDir分布式共享目录。 2. 创建文件通过[fs.openSync()](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-file-fs#fsopensync)以同步方法打开文件或目录,然后通过[fs.writeSync()](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-file-fs#fswritesync)以同步方法将数据写入文件,最后通过[fs.closeSync()](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-file-fs#fsclosesync)以同步方法关闭文件或目录,即可创建成功。 3. 访问本地文件,通过[fs.listFile()](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-file-fs#fslistfile)列出本地filesDir沙箱路径目录下所有文件。 4. 访问远端文件: - 首先通过[设备管理接口](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-distributeddevicemanager)获取设备networkId。 - 通过[fs.connectDfs()](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-file-fs#fsconnectdfs12)开启跨设备文件访问。 - 随后通过[fs.listFile()](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-file-fs#fslistfile)列出远端沙箱路径distributedFilesDir目录下所有文件。 5. 预览界面: - 通过[fs.readTextSync()](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-file-fs#fsreadtextsync)读取沙箱路径下的某一项文件,格式为:fs.readTextSync(沙箱路径 + 文件名)。 6. 保存功能: - 通过[fs.openSync()](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-file-fs#fsopensync)以同步方法打开相应文件路径,随后通过[fs.writeSync()](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-file-fs#fswritesync)以同步方法将数据写入文件,最后通过[fs.closeSync()](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-file-fs#fsclosesync)以同步方法关闭文件,即可保存成功。 ## 相关权限 * ohos.permission.DISTRIBUTED_DATASYNC:允许不同设备间的数据交换。 ## 约束与限制 1. 本示例仅支持标准系统上运行,支持设备:华为手机。 2. HarmonyOS系统:HarmonyOS 5.1.1 Release及以上。 3. DevEco Studio版本:DevEco Studio 5.1.1 Release及以上。 4. HarmonyOS SDK版本:HarmonyOS 5.1.1 Release SDK及以上。 5. 双端设备需要登录同一华为账号。 6. 双端设备需要打开Wi-Fi和蓝牙开关。条件允许时,建议双端设备接入同一个局域网,可提升数据传输的速度。