前言

文件创建和删除是文件管理的基本操作。@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 安装依赖

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;
  }
}

五、注意事项

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

六、常见问题

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

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

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

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

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

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

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

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

在这里插入图片描述
在这里插入图片描述

总结

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

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

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐