鸿蒙三方库 | harmony-utils之FileUtil文件拷贝与移动详解
前言文件拷贝和移动是文件管理的常见操作如备份文件、整理目录结构等。pura/harmony-utils的FileUtil封装了文件拷贝和移动方法支持跨目录操作。本文将从API说明、代码实战、进阶用法、常见问题等多个维度进行全面讲解帮助开发者快速掌握并应用到实际项目中。一、FileUtil拷贝移动核心APIFileUtil提供了以下文件拷贝和移动方法方法说明返回类型使用场景copyFile(src, dest)拷贝文件void文件备份copyDir(src, dest)拷贝目录void目录备份moveFile(src, dest)移动文件void文件归档moveDir(src, dest)移动目录void目录整理1.1 核心特性简洁易用封装复杂API为一行调用降低使用门槛类型安全完整的TypeScript类型定义编译期即可发现错误异常处理内置异常捕获机制避免运行时崩溃跨目录支持支持跨目录的拷贝和移动操作1.2 拷贝与移动区别操作源文件目标文件适用场景拷贝保留新增副本备份、复制移动删除新增归档、整理二、完整使用步骤2.1 安装依赖ohpminstallpura/harmony-utils2.2 文件拷贝import{FileUtil}frompura/harmony-utils;Button(拷贝文件).width(100%).onClick((){try{letsrcFileUtil.getFilesDir()/test.txt;letdestFileUtil.getFilesDir()/backup.txt;FileUtil.copyFile(src,dest);this.result拷贝成功 ✅\n源: test.txt\n目标: backup.txt;}catch(e){this.result异常: e;}})2.3 文件移动Button(移动文件).width(100%).onClick((){try{letsrcFileUtil.getFilesDir()/backup.txt;letdestFileUtil.getFilesDir()/archive/backup.txt;FileUtil.moveFile(src,dest);this.result移动成功 ✅\n已移至archive目录;}catch(e){this.result异常: e;}})三、完整页面示例import{FileUtil}frompura/harmony-utils;EntryComponentstruct FileCopyDemo{Stateresult:string;build(){Column({space:12}){Button(创建测试文件).width(100%).onClick((){FileUtil.writeTextSync(FileUtil.getFilesDir()/src.txt,测试内容);this.result测试文件已创建;});Button(拷贝文件).width(100%).onClick((){try{FileUtil.copyFile(FileUtil.getFilesDir()/src.txt,FileUtil.getFilesDir()/dst.txt);this.result拷贝成功;}catch(e){this.result异常: e;}});Text(this.result).fontSize(14).fontColor(#333333)}.padding(16)}}四、进阶用法4.1 文件备份策略import{FileUtil}frompura/harmony-utils;functionbackupFile(filePath:string):string{letbackupPathfilePath.bak;FileUtil.copyFile(filePath,backupPath);returnbackupPath;}4.2 批量移动文件functionmoveFilesToArchive(filePaths:string[]):void{letarchiveDirFileUtil.getFilesDir()/archive;FileUtil.createDir(archiveDir);filePaths.forEach(path{letfilenamepath.split(/).pop()||;FileUtil.moveFile(path,archiveDir/filename);});}五、注意事项目标路径目标路径的父目录必须存在同名文件目标路径已存在同名文件会覆盖跨分区移动操作跨分区时实际为拷贝删除初始化依赖使用前需确保AppUtil.init()已调用大文件大文件拷贝可能耗时建议异步处理六、常见问题Q1: 拷贝文件时目标目录不存在需要先创建目标目录使用createDir()创建后再拷贝。Q2: 移动文件后源文件还在可能是跨分区移动失败检查源路径和目标路径是否有效。Q3: 如何批量拷贝整个目录使用copyDir()方法可以拷贝整个目录及其内容。Q4: 拷贝过程中断会导致数据丢失吗拷贝是原子操作中断后目标文件可能不完整建议校验后使用。总结FileUtil的文件拷贝和移动方法为文件管理提供了便捷操作。本文详细介绍了核心API、使用步骤、完整示例、进阶用法以及常见问题的解决方案。开发者可以根据需求选择拷贝或移动操作。本文基于pura/harmony-utils工具库更多功能请参考官方文档与后续系列文章。

相关新闻

GPT-Red:大语言模型对抗训练框架提升鲁棒性实践指南

GPT-Red:大语言模型对抗训练框架提升鲁棒性实践指南

这次我们来看一个名为 GPT-Red 的项目,它专注于通过对抗训练技术提升大语言模型的鲁棒性。在当前大模型快速发展的背景下,如何让模型在面对提示词注入、恶意输入等攻击时保持稳定表现,成为了一个重要的技术挑战。GPT-Red 项目的核心价值在于它…

2026/7/30 13:48:24 阅读更多 →
Nintendo Switch大气层系统:如何用3大核心模块打造专业级自定义体验?

Nintendo Switch大气层系统:如何用3大核心模块打造专业级自定义体验?

Nintendo Switch大气层系统:如何用3大核心模块打造专业级自定义体验? 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable 探索Nintendo Switch自制系统的无限可能&#…

2026/7/29 4:35:59 阅读更多 →
Codeforces Div.3竞赛解析与算法精讲

Codeforces Div.3竞赛解析与算法精讲

1. Codeforces Round #634 (Div. 3)赛事解析作为一名参加过上百场算法竞赛的老兵,我想通过这篇长文带大家深入剖析这场经典赛事。Codeforces Round #634是2020年4月举办的Div.3级别比赛,虽然过去几年,但其中的题目设计和解题思路至今仍具有很…

2026/7/29 23:06:37 阅读更多 →

最新新闻

3大核心功能:RESP.app如何让Redis数据库管理变得简单高效

3大核心功能:RESP.app如何让Redis数据库管理变得简单高效

3大核心功能:RESP.app如何让Redis数据库管理变得简单高效 【免费下载链接】RedisDesktopManager RedisInsight/RedisDesktopManager: RedisDesktopManager 是一个用于 Redis 数据库管理的桌面应用程序,可以用于连接和操作 Redis 数据库,支持多…

2026/7/30 13:57:40 阅读更多 →
大语言模型输出头:从语言建模到条件生成与价值评估

大语言模型输出头:从语言建模到条件生成与价值评估

你可能已经注意到,同一个大语言模型,有时能流畅地续写文章,有时能精准地回答你的问题,有时又能扮演特定角色与你对话。这背后,往往不是模型本身发生了本质变化,而是一个关键但常被忽视的组件在起作用—— …

2026/7/30 13:57:40 阅读更多 →
【计算机毕业设计单片机案例】基于STM32单片机的步进电机门禁控制装置研究 基于单片机软硬件协同的自动感应门禁系统设计(012401)

【计算机毕业设计单片机案例】基于STM32单片机的步进电机门禁控制装置研究 基于单片机软硬件协同的自动感应门禁系统设计(012401)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/7/30 13:57:40 阅读更多 →
Linux下CAN总线SocketCAN编程实战:从基础到网关开发

Linux下CAN总线SocketCAN编程实战:从基础到网关开发

1. 项目概述:为什么CAN总线编程是嵌入式开发的硬核技能? 如果你在搞嵌入式开发,尤其是汽车电子、工业控制或者机器人,那你肯定绕不开CAN总线。这玩意儿就像设备之间的“神经系统”,负责在各种控制器之间高速、可靠地传…

2026/7/30 13:57:40 阅读更多 →
如何一键备份你的QQ空间历史数据:GetQzonehistory完整指南 [特殊字符]

如何一键备份你的QQ空间历史数据:GetQzonehistory完整指南 [特殊字符]

如何一键备份你的QQ空间历史数据:GetQzonehistory完整指南 🚀 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾想过要备份自己的QQ空间历史数据&#xff…

2026/7/30 13:56:40 阅读更多 →
3分钟永久解锁IDM:开源激活脚本完整使用指南

3分钟永久解锁IDM:开源激活脚本完整使用指南

3分钟永久解锁IDM:开源激活脚本完整使用指南 【免费下载链接】IDM-Activation-Script IDM Activation & Trail Reset Script 项目地址: https://gitcode.com/gh_mirrors/id/IDM-Activation-Script 还在为Internet Download Manager(IDM&#…

2026/7/30 13:56:40 阅读更多 →

日新闻

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 您是否曾因Windows系统盘空间不足而烦恼?是否遇到过设…

2026/7/30 0:00:13 阅读更多 →
如何3步掌握Video Download Helper:网页视频下载的完整实战指南

如何3步掌握Video Download Helper:网页视频下载的完整实战指南

如何3步掌握Video Download Helper:网页视频下载的完整实战指南 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 你是否曾经在浏览…

2026/7/30 0:00:13 阅读更多 →
“双减”后首个AI备课压力测试报告:覆盖32所中小学的176节AI辅助课,暴露4大隐性增负节点

“双减”后首个AI备课压力测试报告:覆盖32所中小学的176节AI辅助课,暴露4大隐性增负节点

更多请点击: https://intelliparadigm.com 第一章:AI 教师备课辅助 AI 教师备课辅助系统正逐步成为教育数字化转型的核心支撑工具,它并非替代教师,而是通过语义理解、知识图谱与多模态生成能力,将教师从重复性劳动中解…

2026/7/30 0:00:13 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/29 22:18:20 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/29 15:00:03 阅读更多 →

月新闻