You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用ADF管道统计文件夹及其子文件夹中的所有文件数量

用Azure Data Factory统计文件共享全量文件数的步骤

你已经用了Get Metadata列出子项,接下来按下面的步骤操作即可:

1. 确认Get Metadata的配置

确保你的Get Metadata活动字段列表中已勾选childItems,这样才能获取根目录下所有文件和文件夹的完整列表。

2. 添加For Each活动遍历根目录子项

将Get Metadata的输出作为For Each的输入:

  • For Each的Items设置为:@activity('你的Get Metadata活动名称').output.childItems
  • 新手建议勾选Sequential(按顺序执行,避免并发操作引发的问题)

3. 用If Condition区分文件与文件夹

在For Each内部添加If Condition活动,判断当前子项类型:

  • 条件表达式填写:@equals(item().type, 'File')
    • 若判定为文件:添加Set Variable活动,将计数变量加1
    • 若判定为文件夹:嵌套一个新的Get Metadata活动获取该子文件夹的childItems,再套一层For Each遍历子文件夹内的项,重复判断类型、累加计数的操作

4. 初始化计数变量

在管道开头,通过Variables面板创建一个整数类型的变量(例如命名为totalFileCount),初始值设为0。

5. 实现计数累加

  • 处理文件时,Set Variable的值设置为:@add(variables('totalFileCount'), 1)
  • 处理文件夹时,嵌套的Get Metadata活动路径需指向目标子文件夹:@concat('你的文件共享根路径/', item().name)(替换成实际的根路径,比如myshare/root)

6. 查看统计结果

管道运行完成后,前往Monitor面板查看totalFileCount变量的值,即为所有文件的总数。若需持久化结果,可添加Web活动或写入存储的活动。

多层嵌套文件夹的处理方案

上述方法仅支持两级目录(根目录+一级子文件夹),若存在更深层次的嵌套,Data Factory原生无法实现递归遍历。此时可以编写简单的Azure Function:用Python或C#实现文件共享的全量遍历计数,再在管道中调用该Function直接获取统计结果,比多层嵌套For Each更高效。

内容的提问来源于stack exchange,提问作者Shedrack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 07:57:08