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

Azure Data Factory如何将多目录指定文件复制到Blob平级目录并保留文件名

实现方案

你用Lookup+For Each循环的思路是可行的,按以下步骤配置即可实现需求:

前置准备

  • 新建2个链接服务,分别对接你的源文件共享、目标Blob存储
  • 新建3个数据集:
    • 存储filepaths.txt的源文本数据集,用于Lookup读取路径列表
    • 参数化的源文件共享数据集:新增sourceFolder、sourceFileName两个参数,连接配置中文件夹路径、文件名分别绑定@dataset().sourceFolder、@dataset().sourceFileName,不要写死固定值
    • 参数化的目标Blob数据集:新增targetFileName参数,连接配置中固定文件夹路径为CombinedSubfolder,文件名绑定@dataset().targetFileName

步骤1:配置Lookup活动

  • 源选择filepaths.txt对应的数据集
  • 若filepaths.txt无表头、每行存储一个路径,关闭「仅返回第一行」选项即可,默认读取的路径字段名为Prop_0;若有自定义表头,按实际字段名取值即可

步骤2:配置For Each循环活动

  • 「项」参数填写@activity('Lookup1').output.value(替换Lookup1为你的活动名)
  • 可按需开启「并行执行」提高复制效率,并行度上限根据你的Azure资源配额调整

步骤3:For Each内部添加Copy活动

源端配置

  • 数据集选择参数化的源文件共享数据集
  • sourceFolder参数传值:@replace(item().Prop_0, concat('\\', split(item().Prop_0, '\\')[last(split(item().Prop_0, '\\'))]), '')
  • sourceFileName参数传值:@split(item().Prop_0, '\\')[last(split(item().Prop_0, '\\'))]

目标端配置

  • 数据集选择参数化的目标Blob数据集
  • targetFileName参数传值和上述sourceFileName一致:@split(item().Prop_0, '\\')[last(split(item().Prop_0, '\\'))]
  • 副本行为可按需选择「覆盖」或「跳过」重复文件
    配置完成后运行管道,所有列表内的文件会直接复制到Blob的CombinedSubfolder平级目录下,不会携带源端子目录结构,文件名保持和源文件一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 13:54:02