获取文件夹下所有文件
函数名:f_获取文件列表 / f_GetList
功能描述
获取指定文件夹下的所有文件列表,支持递归子目录搜索及文件类型筛选。返回文件完整路径的二维数组,可直接溢出到 Excel 单元格区域。
会员等级:🟢 免费版(Free)
语法
excel
=f_获取文件列表(文件夹路径, [包含子文件夹], [文件类型])参数
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| 文件夹路径 | String | 是 | 无 | 要搜索的目录路径 |
| [包含子文件夹] | Boolean | 否 | TRUE | 是否包含子文件夹,TRUE=递归搜索子目录,FALSE=仅搜索当前目录 |
| [文件类型] | String | 否 | *.* | 扩展名过滤,如 *.txt、*.xlsx,支持多类型用 | 分隔,如 *.txt|*.xlsx |
返回值
Object[,] - 二维数组(N行1列),每行为一个文件的完整路径。目录不存在时返回含错误信息的 1x1 数组。
使用示例
获取目录下所有文件(含子目录)
公式:
excel
=f_获取文件列表("D:\Reports")结果:
D:\Reports\2025\Q1.xlsx
D:\Reports\2025\Q2.xlsx
D:\Reports\summary.docx筛选指定类型文件
公式:
excel
=f_获取文件列表("D:\Reports", TRUE, "*.txt|*.xlsx")结果:
D:\Reports\notes.txt
D:\Reports\2025\Q1.xlsx
D:\Reports\2025\Q2.xlsx仅搜索当前目录(不含子目录)
公式:
excel
=f_获取文件列表("D:\Reports", FALSE)结果:
D:\Reports\summary.docx
D:\Reports\notes.txt技术说明
- 调用
Directory.GetFiles获取文件列表,通过SearchOption参数控制是否递归子目录。 - 支持多扩展名联合筛选:将
[文件类型]参数按|分隔为多个模式,分别查询后合并结果。 - 返回二维数组(N行1列),适配 Excel 动态数组溢出功能。
错误处理
| 错误场景 | 返回值 |
|---|---|
| 目录不存在 | 错误:目录不存在 |
| 其他异常 | 错误: {异常信息} |
| 无匹配文件 | 空数组 |