鸿蒙三方库 | harmony-utils之FileUtil文件管理与目录详解
前言文件管理包括文件创建、删除、复制、移动以及目录操作等。pura/harmony-utils的FileUtil封装了文件管理和目录操作方法简化了文件系统操作。本文将从API说明、代码实战、进阶用法、常见问题等多个维度进行全面讲解帮助开发者快速掌握并应用到实际项目中。一、FileUtil管理核心APIFileUtil提供了以下文件管理方法方法说明返回类型使用场景exists(path)文件是否存在boolean存在检查isFile(path)是否文件boolean类型判断isDirectory(path)是否目录boolean类型判断createFile(path)创建文件void文件创建createDirectory(path)创建目录void目录创建delete(path)删除文件或目录void文件清理rename(path, newName)重命名void文件重命名copy(src, dest)复制文件void文件备份move(src, dest)移动文件void文件整理getFilesDir()获取应用文件目录string路径获取getCacheDir()获取缓存目录string缓存路径listFiles(path)列出目录文件string[]文件浏览1.1 核心特性简洁易用封装复杂逻辑为一行调用降低使用门槛类型安全完整的TypeScript类型定义编译期即可发现错误异常处理内置异常捕获机制避免运行时崩溃全面覆盖覆盖文件和目录的增删改查操作1.2 目录类型对照目录方法说明生命周期文件目录getFilesDir应用私有文件随应用缓存目录getCacheDir临时缓存系统可清理临时目录getTempDir临时文件随时清理二、完整使用步骤2.1 安装依赖ohpminstallpura/harmony-utils2.2 文件存在判断import{FileUtil}frompura/harmony-utils;Button(文件存在判断).width(100%).onClick((){try{letpathFileUtil.getFilesDir()/test.txt;letexistsFileUtil.exists(path);this.result${path}\n存在:${exists?是 ✅:否 ❌};}catch(e){this.result异常: e;}})2.3 创建与删除Button(创建与删除).width(100%).onClick((){try{letdirFileUtil.getFilesDir()/mydir;FileUtil.createDirectory(dir);FileUtil.createFile(dir/note.txt);this.result目录和文件已创建 ✅;}catch(e){this.result异常: e;}})三、完整页面示例import{FileUtil}frompura/harmony-utils;EntryComponentstruct FileManageDemo{Stateresult:string;build(){Column({space:12}){Button(文件目录).width(100%).onClick((){this.result文件:${FileUtil.getFilesDir()}\n缓存:${FileUtil.getCacheDir()};});Button(创建目录).width(100%).onClick((){FileUtil.createDirectory(FileUtil.getFilesDir()/demo);this.result目录已创建;});Button(列出文件).width(100%).onClick((){letfilesFileUtil.listFiles(FileUtil.getFilesDir());this.result文件数:${files.length};});Text(this.result).fontSize(14).fontColor(#333333)}.padding(16)}}四、进阶用法4.1 缓存管理import{FileUtil}frompura/harmony-utils;functionclearCache():void{letcacheDirFileUtil.getCacheDir();letfilesFileUtil.listFiles(cacheDir);files.forEach(file{FileUtil.delete(file);});}4.2 文件备份functionbackupFile(srcPath:string):string{letbackupDirFileUtil.getFilesDir()/backup;FileUtil.createDirectory(backupDir);letfileNamesrcPath.split(/).pop();letdestPathbackupDir/fileName;FileUtil.copy(srcPath,destPath);returndestPath;}五、注意事项路径安全使用FileUtil提供的方法获取安全路径删除不可逆delete操作不可恢复谨慎使用目录递归delete删除目录时可能递归删除所有内容初始化依赖使用前需确保AppUtil.init()已调用并发安全多线程同时操作同一文件需注意并发安全六、常见问题Q1: delete删除目录会删除子文件吗通常会的delete删除目录时会递归删除所有子文件和子目录。Q2: copy可以复制目录吗取决于实现部分只支持文件复制目录需递归处理。Q3: getFilesDir返回的路径应用卸载后还在吗不在了应用私有目录随应用卸载而被清除。Q4: 如何获取外部存储路径HarmonyOS使用沙箱机制应用只能访问自己的目录。总结FileUtil的文件管理和目录方法为文件系统操作提供了便捷支持。本文详细介绍了核心API、使用步骤、完整示例、进阶用法以及常见问题的解决方案。开发者可以利用这些方法实现文件管理、缓存清理等功能。本文基于pura/harmony-utils工具库更多功能请参考官方文档与后续系列文章。

相关新闻

大模型产品化实践:Harness Engineering方法论解析

大模型产品化实践:Harness Engineering方法论解析

1. 理解 Harness Engineering 与大模型的关系Harness Engineering(驾驭工程)是 AI 领域新兴的工程方法论,核心目标是通过系统性设计让大模型在实际业务中可靠工作。传统 AI 开发往往只关注模型训练和调优,而 Harness Engineering …

2026/7/28 7:15:32 阅读更多 →
基于Stable Diffusion与FFmpeg的AIGC粉丝创作技术实践指南

基于Stable Diffusion与FFmpeg的AIGC粉丝创作技术实践指南

这次我们来看一个名为“【TXT|崔然竣】Y2,Lets go!!!(cr.古罗马混凝土)”的项目。从标题和命名习惯来看,这很可能是一个围绕韩国男子团体TXT成员崔然竣(Choi Yeonjun)的粉丝创作项目,具体形式可…

2026/7/28 7:15:32 阅读更多 →
卡尔曼滤波算法在雷达轨迹跟踪中的7种Matlab实现

卡尔曼滤波算法在雷达轨迹跟踪中的7种Matlab实现

1. 卡尔曼滤波器概述:从理论到雷达轨迹实践在雷达目标跟踪、导航定位和工业控制等领域,卡尔曼滤波器(Kalman Filter)一直是状态估计的核心算法。我第一次接触卡尔曼滤波是在研究生阶段的无人机导航项目中,当时为了处理…

2026/7/28 7:15:32 阅读更多 →

最新新闻

基于ESP32的一款用于岸钓场景的自动打窝器

基于ESP32的一款用于岸钓场景的自动打窝器

一、项目背景 岸钓时,打窝是诱鱼聚鱼的关键环节。传统手工打窝不仅费时费力,而且投饵量不均匀、时机难以把握。本文设计一款基于 ESP32 的智能自动打窝器,支持定时定量投饵、手机蓝牙远程控制,续航持久,专为岸钓场景打造。 二、硬件选型与接线 2.1 核心器件选型 模块 型…

2026/7/28 7:27:37 阅读更多 →
从零搭建桌面抓棍机:Arduino与步进电机实战指南

从零搭建桌面抓棍机:Arduino与步进电机实战指南

1. 项目概述:从“桌面抓棍机”说起最近在“快乐智造营”里看到一个挺有意思的项目,叫“桌面抓棍机”。乍一听这个名字,可能有点摸不着头脑,这到底是抓娃娃机还是什么新奇的玩意儿?其实,这是一个非常典型的、…

2026/7/28 7:27:37 阅读更多 →
Spring Boot Redis序列化配置:Jackson2JsonRedisSerializer解决ClassCastException

Spring Boot Redis序列化配置:Jackson2JsonRedisSerializer解决ClassCastException

1. 项目概述:当Redis缓存遇上Java对象 在基于Spring Boot的现代Web应用开发中,Redis作为高性能的缓存和分布式数据存储,其地位几乎不可或缺。我们习惯于将复杂的Java对象(POJO)直接存入Redis,以加速数据访问…

2026/7/28 7:27:37 阅读更多 →
基于ATtiny85的互动音乐装置制作:从传感器到蜂鸣器的完整实现

基于ATtiny85的互动音乐装置制作:从传感器到蜂鸣器的完整实现

1. 项目概述:当豌豆遇上音乐你见过会唱歌的豌豆吗?这听起来像是童话故事里的情节,但在创客和手工爱好者的世界里,它已经变成了一个充满趣味和挑战的现实项目。这个“会唱歌的豌豆”项目,本质上是一个融合了基础电子学、…

2026/7/28 7:27:37 阅读更多 →
DIY可编程LittleBits模块:用Arduino Nano改造磁吸电子积木

DIY可编程LittleBits模块:用Arduino Nano改造磁吸电子积木

1. 项目概述:当磁吸积木遇上开源硬件 如果你玩过LittleBits,一定会被它那种“咔哒”一声就能连接电路、无需焊接的优雅设计所吸引。它让电子原型设计变得像搭乐高一样简单直观,是教育领域和创意工作坊的宠儿。但玩久了,你可能会发…

2026/7/28 7:27:37 阅读更多 →
如何让旧款Mac免费升级到最新macOS:OpenCore Legacy Patcher完整指南

如何让旧款Mac免费升级到最新macOS:OpenCore Legacy Patcher完整指南

如何让旧款Mac免费升级到最新macOS:OpenCore Legacy Patcher完整指南 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 你是否正在为手中的旧款Mac无…

2026/7/28 7:26:37 阅读更多 →

日新闻

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:43 阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:43 阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:43 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/27 4:33:59 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/27 6:31:56 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/28 5:03:42 阅读更多 →

月新闻