鸿蒙三方库 | harmony-utils之FileUtil文件创建与删除详解
前言文件创建和删除是文件管理的基本操作。pura/harmony-utils的FileUtil封装了文件和目录的创建、删除方法支持递归创建目录和强制删除非空目录。本文将从API说明、代码实战、进阶用法、常见问题等多个维度进行全面讲解帮助开发者快速掌握并应用到实际项目中。一、FileUtil创建删除核心APIFileUtil提供了以下文件创建和删除方法方法说明返回类型使用场景createFile(path)创建文件void新建空文件createDir(path)创建目录void新建目录deleteFile(path)删除文件void清理文件deleteDir(path)删除目录void清理目录exists(path)判断文件是否存在boolean存在性检查1.1 核心特性简洁易用封装复杂API为一行调用降低使用门槛类型安全完整的TypeScript类型定义编译期即可发现错误异常处理内置异常捕获机制避免运行时崩溃递归支持支持递归创建多级目录1.2 创建删除操作对照操作方法前提条件异常情况创建文件createFile父目录存在文件已存在创建目录createDir父目录存在目录已存在删除文件deleteFile文件存在文件不存在删除目录deleteDir目录存在目录不存在二、完整使用步骤2.1 安装依赖ohpminstallpura/harmony-utils2.2 创建文件和目录import{FileUtil}frompura/harmony-utils;Button(创建目录).width(100%).onClick((){try{letdirPathFileUtil.getFilesDir()/mydir;FileUtil.createDir(dirPath);this.result目录创建成功 ✅\n${dirPath};}catch(e){this.result异常: e;}})Button(创建文件).width(100%).onClick((){try{letfilePathFileUtil.getFilesDir()/mydir/test.txt;FileUtil.createFile(filePath);this.result文件创建成功 ✅\n${filePath};}catch(e){this.result异常: e;}})2.3 删除文件和目录Button(删除文件).width(100%).onClick((){try{letfilePathFileUtil.getFilesDir()/mydir/test.txt;FileUtil.deleteFile(filePath);this.result文件删除成功 ️;}catch(e){this.result异常: e;}})Button(删除目录).width(100%).onClick((){try{letdirPathFileUtil.getFilesDir()/mydir;FileUtil.deleteDir(dirPath);this.result目录删除成功 ️;}catch(e){this.result异常: e;}})三、完整页面示例import{FileUtil}frompura/harmony-utils;EntryComponentstruct FileCreateDemo{Stateresult:string;build(){Column({space:12}){Button(创建并删除文件).width(100%).onClick((){try{letpathFileUtil.getFilesDir()/temp.txt;FileUtil.createFile(path);letexistsFileUtil.exists(path);FileUtil.deleteFile(path);this.result创建: 成功\n存在:${exists}\n删除: 成功;}catch(e){this.result异常: e;}});Text(this.result).fontSize(14).fontColor(#333333)}.padding(16)}}四、进阶用法4.1 安全创建文件import{FileUtil}frompura/harmony-utils;functionsafeCreateFile(path:string):boolean{try{if(!FileUtil.exists(path)){FileUtil.createFile(path);}returntrue;}catch(e){returnfalse;}}4.2 安全删除文件functionsafeDelete(path:string):boolean{try{if(FileUtil.exists(path)){if(FileUtil.isDirectory(path)){FileUtil.deleteDir(path);}else{FileUtil.deleteFile(path);}}returntrue;}catch(e){returnfalse;}}五、注意事项父目录创建文件前需确保父目录存在删除不可逆文件删除后无法恢复建议确认后再删除非空目录删除非空目录可能需要递归删除初始化依赖使用前需确保AppUtil.init()已调用并发安全多线程操作同一文件需注意并发安全六、常见问题Q1: 创建文件时提示父目录不存在需要先创建父目录使用createDir()创建父目录后再创建文件。Q2: 删除目录时提示目录非空需要先删除目录中的所有文件和子目录或使用递归删除方法。Q3: exists()返回true但无法读取可能是权限不足检查文件权限配置。Q4: 创建文件后立即读取为空新创建的文件内容为空需要先写入内容再读取。总结FileUtil的文件创建和删除方法为文件管理提供了基础操作支持。本文详细介绍了核心API、使用步骤、完整示例、进阶用法以及常见问题的解决方案。合理使用创建和删除操作可以高效管理应用文件。本文基于pura/harmony-utils工具库更多功能请参考官方文档与后续系列文章。

相关新闻

鸿蒙三方库 | harmony-utils之FileUtil文件读写操作详解

鸿蒙三方库 | harmony-utils之FileUtil文件读写操作详解

前言 文件读写是最基础的文件操作,pura/harmony-utils 的 FileUtil 封装了简洁的文件读写方法,支持文本和二进制数据的读写,开发者无需手动管理文件流。本文将从API说明、代码实战、进阶用法、常见问题等多个维度进行全面讲解,帮助…

2026/7/19 0:54:05 阅读更多 →
顶会论文的产品化落地路径:从论文伪代码到生产级Feature的工程评估体系

顶会论文的产品化落地路径:从论文伪代码到生产级Feature的工程评估体系

顶会论文的产品化落地路径:从论文伪代码到生产级Feature的工程评估体系 一、论文很美好、落地很骨感:顶会成果为何难以产品化 NeurIPS、ICLR、ACL 等顶会每年产出数千篇论文,其中不少提出令人振奋的新方法。但将其转化为产品 Feature 的比例极…

2026/7/19 0:53:05 阅读更多 →
鸿蒙 ArkTS 实战:Knowledge Card Generator 从智能助手到保存闭环完整解析

鸿蒙 ArkTS 实战:Knowledge Card Generator 从智能助手到保存闭环完整解析

鸿蒙 ArkTS 实战:Knowledge Card Generator 从智能助手到保存闭环完整解析 前言 Knowledge Card Generator 是一个面向 知识卡片生成器 的鸿蒙 ArkTS 单页工具。它把主题输入、数量统计、辅助开关、备注和保存状态组织到一个移动端工作台中。 项目服务于 从长文本…

2026/7/19 0:53:05 阅读更多 →

最新新闻

深入解析OMAP34xx IPC Mailbox与SCM:嵌入式多核通信硬件驱动实战

深入解析OMAP34xx IPC Mailbox与SCM:嵌入式多核通信硬件驱动实战

1. 项目概述与核心价值在嵌入式多核系统的开发中,如何让ARM Cortex-A8这样的应用处理器与DSP、协处理器等其他计算单元高效、可靠地“对话”,是一个既基础又核心的挑战。直接操作共享内存不仅繁琐,还极易引入同步和竞态问题。德州仪器&#x…

2026/7/19 6:55:43 阅读更多 →
C++20协程工程化实战:从原理到高性能异步编程

C++20协程工程化实战:从原理到高性能异步编程

1. 项目概述:为什么C20协程值得你投入时间?如果你是一名C开发者,最近几年肯定没少听到“协程”这个词。从C20标准正式引入协程开始,这个特性就从实验室里的“未来科技”,逐渐变成了我们工程实践中必须面对和掌握的工具…

2026/7/19 6:55:43 阅读更多 →
C++多态机制深度解析:从虚函数到设计模式实战

C++多态机制深度解析:从虚函数到设计模式实战

1. 多态到底是什么?从“一个接口,多种形态”说起如果你已经接触过C的封装和继承,可能会觉得面向对象编程的骨架已经搭好了。但真正让这个骨架“活”起来,能够灵活应对复杂多变需求的,是多态。多态这个词听起来有点玄乎…

2026/7/19 6:55:43 阅读更多 →
从三易串口屏 BMS 客户订单暴涨,看 BMS 海外市场爆发逻辑与增长机遇

从三易串口屏 BMS 客户订单暴涨,看 BMS 海外市场爆发逻辑与增长机遇

近期,三易半导体旗下串口屏在 BMS(电池管理系统)领域的海外客户订单迎来爆发式增长,中小批量订单密集落地、大型项目订单持续跟进,成为国产工业显示配件出海的亮眼样本。这一现象并非偶然,既源于三易串口屏…

2026/7/19 6:55:43 阅读更多 →
现代加密技术解析:从基础原理到实战应用

现代加密技术解析:从基础原理到实战应用

1. 加密与解密的基础概念加密技术是现代信息安全的基石,它通过数学算法将可读的明文转换为不可读的密文,而解密则是将密文恢复为明文的过程。这两个看似对立的概念实际上构成了信息安全的一体两面。1.1 加密的基本原理加密过程需要三个核心要素&#xff…

2026/7/19 6:55:43 阅读更多 →
Unity AI巡逻避坑指南:解决NavMeshAgent原地转圈与平滑移动

Unity AI巡逻避坑指南:解决NavMeshAgent原地转圈与平滑移动

1. 项目概述:从“原地转圈”到流畅巡逻的必经之路在Unity游戏开发中,敌人巡逻(Enemy Patrol)是AI行为中最基础、最核心的模块之一。听起来简单,不就是让怪物沿着预设路径来回走吗?但很多开发者,…

2026/7/19 6:54:43 阅读更多 →

日新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/19 0:00:40 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/19 0:00:40 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/19 0:00:40 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/19 0:00:40 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/19 0:00:40 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/19 0:00:40 阅读更多 →

月新闻