鸿蒙三方库 | harmony-utils之FileUtil文件创建与删除详解
·
前言
文件创建和删除是文件管理的基本操作。@pura/harmony-utils 的 FileUtil 封装了文件和目录的创建、删除方法,支持递归创建目录和强制删除非空目录。本文将从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 安装依赖
ohpm install @pura/harmony-utils
2.2 创建文件和目录
import { FileUtil } from '@pura/harmony-utils';
Button('创建目录')
.width('100%')
.onClick(() => {
try {
let dirPath = FileUtil.getFilesDir() + '/mydir';
FileUtil.createDir(dirPath);
this.result = `目录创建成功 ✅\n${dirPath}`;
} catch (e) {
this.result = '异常: ' + e;
}
})
Button('创建文件')
.width('100%')
.onClick(() => {
try {
let filePath = FileUtil.getFilesDir() + '/mydir/test.txt';
FileUtil.createFile(filePath);
this.result = `文件创建成功 ✅\n${filePath}`;
} catch (e) {
this.result = '异常: ' + e;
}
})
2.3 删除文件和目录
Button('删除文件')
.width('100%')
.onClick(() => {
try {
let filePath = FileUtil.getFilesDir() + '/mydir/test.txt';
FileUtil.deleteFile(filePath);
this.result = '文件删除成功 🗑️';
} catch (e) {
this.result = '异常: ' + e;
}
})
Button('删除目录')
.width('100%')
.onClick(() => {
try {
let dirPath = FileUtil.getFilesDir() + '/mydir';
FileUtil.deleteDir(dirPath);
this.result = '目录删除成功 🗑️';
} catch (e) {
this.result = '异常: ' + e;
}
})

三、完整页面示例
import { FileUtil } from '@pura/harmony-utils';
@Entry
@Component
struct FileCreateDemo {
@State result: string = '';
build() {
Column({ space: 12 }) {
Button('创建并删除文件').width('100%').onClick(() => {
try {
let path = FileUtil.getFilesDir() + '/temp.txt';
FileUtil.createFile(path);
let exists = 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';
function safeCreateFile(path: string): boolean {
try {
if (!FileUtil.exists(path)) {
FileUtil.createFile(path);
}
return true;
} catch (e) {
return false;
}
}
4.2 安全删除文件
function safeDelete(path: string): boolean {
try {
if (FileUtil.exists(path)) {
if (FileUtil.isDirectory(path)) {
FileUtil.deleteDir(path);
} else {
FileUtil.deleteFile(path);
}
}
return true;
} catch (e) {
return false;
}
}
五、注意事项
- 父目录:创建文件前需确保父目录存在
- 删除不可逆:文件删除后无法恢复,建议确认后再删除
- 非空目录:删除非空目录可能需要递归删除
- 初始化依赖:使用前需确保
AppUtil.init()已调用 - 并发安全:多线程操作同一文件需注意并发安全
六、常见问题
Q1: 创建文件时提示父目录不存在?
需要先创建父目录,使用 createDir() 创建父目录后再创建文件。
Q2: 删除目录时提示目录非空?
需要先删除目录中的所有文件和子目录,或使用递归删除方法。
Q3: exists()返回true但无法读取?
可能是权限不足,检查文件权限配置。
Q4: 创建文件后立即读取为空?
新创建的文件内容为空,需要先写入内容再读取。


总结
FileUtil 的文件创建和删除方法为文件管理提供了基础操作支持。本文详细介绍了核心API、使用步骤、完整示例、进阶用法以及常见问题的解决方案。合理使用创建和删除操作,可以高效管理应用文件。
本文基于
@pura/harmony-utils工具库,更多功能请参考官方文档与后续系列文章。
更多推荐


所有评论(0)