计算目录大小
函数名:f_目录大小 / f_DirectorySize
功能描述
计算指定目录及其所有子目录中全部文件的总大小,结果以 MB(兆字节)为单位返回,保留两位小数。
会员等级:🟢 免费版(Free)
语法
excel
=f_目录大小(目录路径)参数
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| 目录路径 | String | 是 | 无 | 待计算的目录路径 |
返回值
Double - 目录总大小(MB),保留两位小数。异常时返回 -1。
使用示例
计算目录大小
公式:
excel
=f_目录大小("D:\Data")结果:
123.45目录不存在或无权限
公式:
excel
=f_目录大小("Z:\InvalidPath")结果:
-1判断目录是否需要清理
公式:
excel
=IF(f_目录大小("D:\Temp")>500, "需要清理", "空间正常")结果:
需要清理技术说明
- 使用
DirectoryInfo.EnumerateFiles("*", SearchOption.AllDirectories)遍历目录及所有子目录下的文件。 - 通过 LINQ
Sum(file => file.Length)累加所有文件的字节数。 - 总字节数除以 1024.0 再除以 1024.0 转换为 MB,使用
Math.Round(..., 2)保留两位小数。 - 使用
EnumerateFiles而非GetFiles,减少内存占用,适合大目录遍历。
错误处理
| 错误场景 | 返回值 |
|---|---|
| 目录不存在 | -1 |
| 权限不足 | -1 |
| 其他异常 | -1 |
| 正常计算 | 目录总大小(MB,保留两位小数) |