当前位置: 首页 > news >正文

鸿蒙三方库 | harmony-utils之FileUtil文件创建与删除详解

前言

文件创建和删除是文件管理的基本操作。@pura/harmony-utilsFileUtil封装了文件和目录的创建、删除方法,支持递归创建目录和强制删除非空目录。本文将从API说明、代码实战、进阶用法、常见问题等多个维度进行全面讲解,帮助开发者快速掌握并应用到实际项目中。

一、FileUtil创建删除核心API

FileUtil提供了以下文件创建和删除方法:

方法说明返回类型使用场景
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 安装依赖

ohpminstall@pura/harmony-utils

2.2 创建文件和目录

import{FileUtil}from'@pura/harmony-utils';Button('创建目录').width('100%').onClick(()=>{try{letdirPath=FileUtil.getFilesDir()+'/mydir';FileUtil.createDir(dirPath);this.result=`目录创建成功 ✅\n${dirPath}`;}catch(e){this.result='异常: '+e;}})Button('创建文件').width('100%').onClick(()=>{try{letfilePath=FileUtil.getFilesDir()+'/mydir/test.txt';FileUtil.createFile(filePath);this.result=`文件创建成功 ✅\n${filePath}`;}catch(e){this.result='异常: '+e;}})

2.3 删除文件和目录

Button('删除文件').width('100%').onClick(()=>{try{letfilePath=FileUtil.getFilesDir()+'/mydir/test.txt';FileUtil.deleteFile(filePath);this.result='文件删除成功 🗑️';}catch(e){this.result='异常: '+e;}})Button('删除目录').width('100%').onClick(()=>{try{letdirPath=FileUtil.getFilesDir()+'/mydir';FileUtil.deleteDir(dirPath);this.result='目录删除成功 🗑️';}catch(e){this.result='异常: '+e;}})

三、完整页面示例

import{FileUtil}from'@pura/harmony-utils';@Entry@Componentstruct FileCreateDemo{@Stateresult:string='';build(){Column({space:12}){Button('创建并删除文件').width('100%').onClick(()=>{try{letpath=FileUtil.getFilesDir()+'/temp.txt';FileUtil.createFile(path);letexists=FileUtil.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}from'@pura/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;}}

五、注意事项

  1. 父目录:创建文件前需确保父目录存在
  2. 删除不可逆:文件删除后无法恢复,建议确认后再删除
  3. 非空目录:删除非空目录可能需要递归删除
  4. 初始化依赖:使用前需确保AppUtil.init()已调用
  5. 并发安全:多线程操作同一文件需注意并发安全

六、常见问题

Q1: 创建文件时提示父目录不存在?

需要先创建父目录,使用createDir()创建父目录后再创建文件。

Q2: 删除目录时提示目录非空?

需要先删除目录中的所有文件和子目录,或使用递归删除方法。

Q3: exists()返回true但无法读取?

可能是权限不足,检查文件权限配置。

Q4: 创建文件后立即读取为空?

新创建的文件内容为空,需要先写入内容再读取。


总结

FileUtil的文件创建和删除方法为文件管理提供了基础操作支持。本文详细介绍了核心API、使用步骤、完整示例、进阶用法以及常见问题的解决方案。合理使用创建和删除操作,可以高效管理应用文件。

本文基于@pura/harmony-utils工具库,更多功能请参考官方文档与后续系列文章。

http://www.jsqmd.com/news/1216493/

相关文章:

  • 如何恢复误删的ZFS文件@FreeBSD
  • AI 电动窗帘电机智能功率 覆盖 H 桥电机驱动、电源管理、传感器控制的完整选型方案
  • 2026年安徽五莲红火烧板批发商对接选品采购指南 - 热点品牌推荐
  • 2026年宁波工业围栏候选厂商综合测评指南 - 奔跑123
  • 2026年地区高铝耐火砖回收商挑选核心要点实用指南 - 热点品牌推荐
  • 保定FTC保温砂浆混合机生产厂家选型选购全指南 - 热点品牌推荐
  • 2026年工程采购普通石英砂热门厂家哪个好 - 热点品牌推荐
  • 一种欠定盲源分离方法及其在模态识别中的应用(Matlab代码实现)
  • U-Boot 基础指令精讲——环境变量、设备查询常用命令
  • 2026年走进宁波诚德兴观摩INS模内注塑成型实操场景 - 奔跑123
  • 青海选极窄钛合金门生产厂家实用选型全指南 - 热点品牌推荐
  • 2026年济南全域布局的食材配送服务正规推荐指南 - 奔跑123
  • 2026年中避暑攻略:知名留坝玩水纳凉地全推荐 - 品牌鉴赏官2026
  • 西安江诗丹顿回收价格查询与各大回收平台实测排行(2026年7月最新数据) - 收的高名表回收平台
  • Kimi LeetCode 3621. 位计数深度为 K 的整数数目 I Rust实现
  • 杭州爱彼回收价格查询和靠谱回收平台实测排行(2026年7月最新) - 嘉价奢侈品回收平台
  • 浏览器一次请求到底经历了什么?
  • 有生产扩能需求 洗瓶灌装一体化设备厂怎么联系才靠谱 - 热点品牌推荐
  • 2026年7月最新杭州积家官方售后服务热线与网点地址查询 - 积家官方售后服务中心
  • 嵌入式DMM中断机制:从原理到实战的错误处理与配置指南
  • U-Boot 核心配置——printenv / setenv / saveenv 环境变量操作
  • 2026济南汽车租赁哪家靠谱 主流合规服务商综合推荐 - 奔跑123
  • 上海宝珀回收价格查询与各大回收平台实测排行(2026年7月最新) - 嘉价奢侈品回收平台
  • 宝玑官方服务项目及价格查询|热线和完整维修地址权威信息公告(2026年7月最新) - 亨得利钟表维修中心
  • 上海16区黄金回收靠谱推荐|嘟嘟芮深耕多年老店,零套路口碑认证No.1 - 沪上贵金属口碑推荐官
  • 2026年北京全域正规汽车电路检修公司联系方式汇总 - 热点品牌推荐
  • ngx_output_chain_as_is
  • 天梭中国官方售后服务中心|电话和完整地址权威信息通知(2026年7月更新) - 天梭服务中心
  • 2026河北PU/PIR夹芯板生产线主流厂商名录盘点 - 奔跑123
  • 如何设置VirtualBox的最大分辨率