如何在ADF中通过ForEach动态构建路径以筛选复制指定文件
在Azure Data Factory中实现ForEach动态路径配置,获取目标文件
步骤1:确认ForEach的遍历对象
确保ForEach活动的Items属性设置为之前Filter活动输出的文件夹列表,示例表达式:
@activity('Filter_Folders').output.Value
此处的Filter_Folders是你用来筛选projA/Sub01/Sub02下日期文件夹的活动。
步骤2:配置ForEach内GetMetadata对应的Dataset动态路径
- 打开读取存储账户文件的Blob Dataset,切换到Connection选项卡。
- 在File path区域点击Dynamic content按钮(铅笔图标)。
- 输入路径拼接表达式:
@concat('projA/Sub01/Sub02/', item().name)
item().name会自动引用ForEach当前遍历到的文件夹名称(如2022-10-01、2022-10-02),和固定前缀拼接后即可精准指向目标子文件夹。
步骤3:获取文件夹内文件并筛选目标文件
- 在ForEach内的GetMetadata活动中,将Field list勾选为
Child items,以此获取当前文件夹下的所有文件对象。 - 添加Filter活动,将Items设置为:
@activity('GetMetadata_FileList').output.ChildItems
- 设置Filter的Condition为:
@startswith(item().name, 'file01')
通过该条件筛选出所有以file01开头的文件。
步骤4:复制筛选后的文件
在Copy活动中:
- 源Dataset的File path type选择
File list,然后在File paths中输入:
@activity('Filter_TargetFiles').output.Value
- 配置好目标Dataset的目标容器路径,即可完成批量复制。
内容的提问来源于stack exchange,提问作者Haribo
相关产品推荐
相关产品推荐

