如何使用ADF复制活动从指定年月子文件夹复制所有文件
ADF复制活动精准复制ADL指定目录文件的解决方案
方法1:直接配置多源路径(适合subdir数量极少的场景)
既然你已经知道所有需要覆盖的subdir,比如是dir1、dir2、dir3,直接在复制活动的源数据集文件夹路径里用分号分隔多个完整路径:
mycontainer/master/dir1/2023/10;mycontainer/master/dir2/2023/10;mycontainer/master/dir3/2023/10
文件名路径设为*(复制当前目录下所有文件)或者/**(包含子目录文件),就能精准拿到目标文件,不会复制多余内容。
方法2:参数化+ForEach循环(适合subdir数量不多但想批量处理的场景)
- 先创建一个字符串数组参数(比如命名为
subdirs),把已知的subdir值填进去,示例:["dir1", "dir2", "dir3"]。 - 添加ForEach活动,迭代这个参数数组。
- 在ForEach内部嵌套复制活动,源数据集的文件夹路径用动态表达式生成:
@concat('mycontainer/master/', item(), '/2023/10')
文件名路径按需设为*或/**,目标路径也可以对应动态拼接,确保每个subdir的文件复制到对应位置。
关于之前通配符写法失效的说明
ADF复制活动中,文件夹路径的*通配符在中间层级使用时,部分存储类型(比如ADLS Gen2)可能需要配合递归开关,或者你之前的写法可以简化——直接写mycontainer/master/*/2023/10即可,不需要用@concat包裹,同时要开启源数据集的递归选项,文件名路径设为*。不过既然你已经明确知道subdir列表,直接指定路径的方式更稳妥,能避免通配符匹配的不确定性。
内容的提问来源于stack exchange,提问作者JavierC
相关产品推荐
相关产品推荐

