
前言文件列表和递归遍历是文件管理的高级功能用于查看目录内容和搜索文件。pura/harmony-utils的FileUtil封装了文件列表和遍历方法支持递归遍历子目录。本文将从API说明、代码实战、进阶用法、常见问题等多个维度进行全面讲解帮助开发者快速掌握并应用到实际项目中。一、FileUtil遍历核心APIFileUtil提供了以下文件列表和遍历方法方法说明返回类型使用场景listFile(path)列出目录文件string[]目录内容查看listDir(path)列出目录内容string[]目录浏览walkFile(path, callback)递归遍历void文件搜索1.1 核心特性简洁易用封装复杂API为一行调用降低使用门槛类型安全完整的TypeScript类型定义编译期即可发现错误异常处理内置异常捕获机制避免运行时崩溃递归支持支持递归遍历子目录1.2 遍历方法对照方法遍历深度返回内容适用场景listFile仅当前目录文件名列表简单浏览listDir仅当前目录文件和目录列表目录浏览walkFile递归子目录逐个回调深度搜索二、完整使用步骤2.1 安装依赖ohpminstallpura/harmony-utils2.2 列出目录文件import{FileUtil}frompura/harmony-utils;Button(列出目录文件).width(100%).onClick((){try{letfilesFileUtil.listFile(FileUtil.getFilesDir());this.result文件数量:${files.length}\n${files.slice(0,5).join(\n)};}catch(e){this.result异常: e;}})2.3 递归遍历Button(递归遍历).width(100%).onClick((){try{letcount0;FileUtil.walkFile(FileUtil.getFilesDir(),(path:string){count;});this.result遍历完成 ✅\n共发现${count}个文件;}catch(e){this.result异常: e;}})三、完整页面示例import{FileUtil}frompura/harmony-utils;EntryComponentstruct FileWalkDemo{Stateresult:string;build(){Column({space:12}){Button(列出文件).width(100%).onClick((){try{letfilesFileUtil.listFile(FileUtil.getFilesDir());this.result共${files.length}个文件\n${files.join(\n)};}catch(e){this.result异常: e;}});Text(this.result).fontSize(14).fontColor(#333333)}.padding(16)}}四、进阶用法4.1 文件搜索import{FileUtil}frompura/harmony-utils;functionsearchFiles(dir:string,keyword:string):string[]{letresults:string[][];FileUtil.walkFile(dir,(path:string){if(path.includes(keyword)){results.push(path);}});returnresults;}4.2 按扩展名过滤functionfilterByExtension(dir:string,ext:string):string[]{letresults:string[][];FileUtil.walkFile(dir,(path:string){if(path.endsWith(.ext)){results.push(path);}});returnresults;}五、注意事项性能影响递归遍历大量文件可能耗时权限要求遍历需要目录的读取权限路径格式返回的路径为绝对路径初始化依赖使用前需确保AppUtil.init()已调用目录深度过深的目录结构可能导致栈溢出六、常见问题Q1: listFile()返回空数组可能是目录为空或没有读取权限检查目录路径和权限。Q2: walkFile()遍历很慢文件数量过多时遍历较慢建议限制遍历深度或使用异步方式。Q3: 如何只遍历文件不遍历目录在回调中使用FileUtil.isFile()判断是否为文件。Q4: 遍历过程中可以删除文件吗不建议在遍历过程中删除文件可能导致遍历结果不完整。总结FileUtil的文件列表和遍历方法为文件管理提供了强大的搜索能力。本文详细介绍了核心API、使用步骤、完整示例、进阶用法以及常见问题的解决方案。开发者可以根据需求选择合适的遍历方式。本文基于pura/harmony-utils工具库更多功能请参考官方文档与后续系列文章。