蒙三方库 | harmony-utils之FileUtil文件重命名与属性查询详解

前言

文件重命名和属性查询是文件管理的重要操作。@pura/harmony-utils 的 FileUtil 封装了文件重命名和属性查询方法,开发者可以轻松获取文件大小、修改时间等属性。本文将从API说明、代码实战、进阶用法、常见问题等多个维度进行全面讲解,帮助开发者快速掌握并应用到实际项目中。

一、FileUtil属性核心API

FileUtil 提供了以下文件属性查询方法:

方法 说明 返回类型 使用场景
rename(oldPath, newPath) 重命名文件 void 文件整理
getFileInfo(path) 获取文件属性 FileInfo 属性查看
getFileSize(path) 获取文件大小 number 大小展示
isDirectory(path) 是否目录 boolean 类型判断
isFile(path) 是否文件 boolean 类型判断

1.1 核心特性

  • 简洁易用:封装复杂API为一行调用,降低使用门槛
  • 类型安全:完整的TypeScript类型定义,编译期即可发现错误
  • 异常处理:内置异常捕获机制,避免运行时崩溃
  • 属性全面:覆盖文件大小、类型等常用属性

1.2 文件属性信息对照

属性 获取方法 说明 示例值
文件大小 getFileSize 字节数 1024
是否文件 isFile 布尔值 true
是否目录 isDirectory 布尔值 false
文件信息 getFileInfo FileInfo对象 -

二、完整使用步骤

2.1 安装依赖

bash 复制代码
ohpm install @pura/harmony-utils

2.2 文件重命名

typescript 复制代码
import { FileUtil } from '@pura/harmony-utils';

Button('重命名文件')
  .width('100%')
  .onClick(() => {
    try {
      let oldPath = FileUtil.getFilesDir() + '/old.txt';
      let newPath = FileUtil.getFilesDir() + '/new.txt';
      FileUtil.rename(oldPath, newPath);
      this.result = '重命名成功 ✅\nold.txt → new.txt';
    } catch (e) {
      this.result = '异常: ' + e;
    }
  })

2.3 查询文件属性

typescript 复制代码
Button('查询文件属性')
  .width('100%')
  .onClick(() => {
    try {
      let path = FileUtil.getFilesDir() + '/test.txt';
      let isFile = FileUtil.isFile(path);
      let size = FileUtil.getFileSize(path);
      this.result = `是文件: ${isFile}\n大小: ${size}字节`;
    } catch (e) {
      this.result = '异常: ' + e;
    }
  })

三、完整页面示例

typescript 复制代码
import { FileUtil } from '@pura/harmony-utils';

@Entry
@Component
struct FileAttrDemo {
  @State result: string = '';

  build() {
    Column({ space: 12 }) {
      Button('查询属性').width('100%').onClick(() => {
        try {
          let path = FileUtil.getFilesDir() + '/test.txt';
          let exists = FileUtil.exists(path);
          let isFile = FileUtil.isFile(path);
          this.result = `存在: ${exists}\n是文件: ${isFile}`;
        } catch (e) { this.result = '异常: ' + e; }
      });
      Text(this.result).fontSize(14).fontColor('#333333')
    }
    .padding(16)
  }
}

四、进阶用法

4.1 文件信息展示

typescript 复制代码
import { FileUtil } from '@pura/harmony-utils';

function getFileDetail(path: string): Record<string, Object> {
  return {
    path: path,
    exists: FileUtil.exists(path),
    isFile: FileUtil.isFile(path),
    isDir: FileUtil.isDirectory(path),
    size: FileUtil.formatFileSize(FileUtil.getFileSize(path))
  };
}

4.2 批量重命名

typescript 复制代码
function batchRename(dir: string, prefix: string): void {
  let files = FileUtil.listFile(dir);
  files.forEach((file, index) => {
    let ext = file.split('.').pop() || '';
    FileUtil.rename(dir + '/' + file, dir + '/' + prefix + '_' + index + '.' + ext);
  });
}

五、注意事项

  1. 重命名路径:新旧路径必须在同一文件系统
  2. 文件存在:查询属性前建议先检查文件是否存在
  3. 大小精度:文件大小以字节为单位
  4. 初始化依赖 :使用前需确保 AppUtil.init() 已调用
  5. 并发安全:重命名操作期间不要同时读写该文件

六、常见问题

Q1: 重命名时提示跨文件系统?

源路径和目标路径必须在同一分区,不能跨分区重命名。

Q2: getFileSize()返回0?

可能是空文件或目录,目录的大小通常为0。

Q3: isFile()和isDirectory()都返回false?

可能是文件不存在,先用 exists() 检查。

Q4: 重命名后原路径文件还在吗?

重命名成功后原路径文件不存在,已移动到新路径。

总结

FileUtil 的文件属性查询和重命名方法为文件管理提供了重要支持。本文详细介绍了核心API、使用步骤、完整示例、进阶用法以及常见问题的解决方案。开发者可以利用这些方法实现文件信息展示和批量操作。

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

相关推荐
阡陌数智8 分钟前
Claude API新版本重大变更与安全升级指南
java·linux·安全
瑞克-桑切斯14 分钟前
docker Harbor 单机部署手册
大数据·运维·elasticsearch·docker·容器
奶茶树21 分钟前
【Linux】环境开发工具(vim,gcc,g++,Makefile)
linux·运维·vim
机 _ 长1 小时前
05 智算运维|8 张卡怎么才算「捆成一张」:NCCL 实测与拓扑
运维·人工智能·算法·智算运维
say_fall1 小时前
【AI大模型】MCP 模型上下文协议:客户端-服务器架构、JSON-RPC 消息与能力协商、工具发现与调用链路、与函数调用的分工
服务器·人工智能·架构
KevinChaos2 小时前
阳台小花园开发手记 01|HarmonyOS 7.0 互动卡片:小花园为何要两套界面
华为·harmonyos
andxe2 小时前
工业级 PoE 交换机选型指南:破解边缘部署四大核心难题
运维·网络·安全·光通信·交换机
Ranger09292 小时前
下一代鸿蒙打包工具链:arkdown
harmonyos
Decay__2 小时前
14_MySQL 高可用与容灾架构 —— MGR / InnoDB Cluster / Keepalived+VIP / 双主 / 读写分离 / 两地三中心
运维·数据库·sql·mysql·架构
木子欢儿4 小时前
国内 macOS/Linux 安装 rust
linux·运维·服务器·macos·rust