鸿蒙三方库 | harmony-utils之FileUtil文件大小格式化详解
前言文件大小通常以字节为单位但用户更习惯看到KB、MB、GB等易读格式。pura/harmony-utils的FileUtil封装了文件大小格式化方法自动选择合适的单位进行展示。本文将从API说明、代码实战、进阶用法、常见问题等多个维度进行全面讲解帮助开发者快速掌握并应用到实际项目中。一、FileUtil大小格式化核心APIFileUtil提供了以下文件大小格式化方法方法说明返回类型使用场景formatFileSize(bytes)格式化文件大小stringUI展示getFileSize(path)获取文件大小字节number大小计算1.1 核心特性简洁易用封装复杂API为一行调用降低使用门槛类型安全完整的TypeScript类型定义编译期即可发现错误异常处理内置异常捕获机制避免运行时崩溃自动换算自动选择最合适的单位展示1.2 格式化单位对照字节范围显示单位示例 1024B512B1024 - 1048575KB1.5KB1048576 - 1073741823MB2.3MB 1073741824GB1.2GB二、完整使用步骤2.1 安装依赖ohpminstallpura/harmony-utils2.2 格式化文件大小import{FileUtil}frompura/harmony-utils;Button(格式化文件大小).width(100%).onClick((){try{letsize1FileUtil.formatFileSize(512);letsize2FileUtil.formatFileSize(1024);letsize3FileUtil.formatFileSize(1048576);letsize4FileUtil.formatFileSize(1073741824);this.result512B ${size1}\n1024B ${size2}\n1MB ${size3}\n1GB ${size4};}catch(e){this.result异常: e;}})2.3 获取并格式化文件大小Button(获取文件大小).width(100%).onClick((){try{letpathFileUtil.getFilesDir()/test.txt;letbytesFileUtil.getFileSize(path);letformattedFileUtil.formatFileSize(bytes);this.result原始:${bytes}B\n格式化:${formatted};}catch(e){this.result异常: e;}})三、完整页面示例import{FileUtil}frompura/harmony-utils;EntryComponentstruct FileSizeDemo{Stateresult:string;build(){Column({space:12}){Button(格式化大小).width(100%).onClick((){letsizes[512,1024,1536,1048576,1073741824];letresultssizes.map(s${s}B ${FileUtil.formatFileSize(s)});this.resultresults.join(\n);});Text(this.result).fontSize(14).fontColor(#333333)}.padding(16)}}四、进阶用法4.1 存储空间统计import{FileUtil}frompura/harmony-utils;functioncalculateDirSize(dirPath:string):string{lettotalSize0;FileUtil.walkFile(dirPath,(path:string){if(FileUtil.isFile(path)){totalSizeFileUtil.getFileSize(path);}});returnFileUtil.formatFileSize(totalSize);}4.2 文件大小比较functioncompareFileSize(path1:string,path2:string):number{letsize1FileUtil.getFileSize(path1);letsize2FileUtil.getFileSize(path2);returnsize1-size2;}五、注意事项精度格式化结果保留1-2位小数单位选择自动选择最合适的单位负数处理不支持负数传入负数可能异常初始化依赖使用前需确保AppUtil.init()已调用大文件超过2GB的文件注意数值溢出六、常见问题Q1: formatFileSize()可以指定单位吗当前版本自动选择单位如需指定单位可自行计算转换。Q2: 格式化后的小数位数可以控制吗默认保留1-2位有效小数具体精度取决于实现。Q3: getFileSize()对目录返回什么目录的大小通常返回0或目录元数据大小不包含子文件大小。Q4: 如何计算目录总大小需要递归遍历目录下所有文件累加每个文件的大小。总结FileUtil的文件大小格式化方法为用户友好的文件大小展示提供了便捷支持。本文详细介绍了核心API、使用步骤、完整示例、进阶用法以及常见问题的解决方案。开发者可以利用这些方法优化文件管理界面的展示效果。本文基于pura/harmony-utils工具库更多功能请参考官方文档与后续系列文章。

相关新闻