如何通过ADF Filter活动同时复制.txt与.csv类型文件?
在ADF中同时筛选并复制.txt和.csv文件的解决方案
一、用现有Filter活动实现的正确写法
ADF的@endswith和@contains不支持直接传数组参数,所以你之前的写法失效。要同时匹配两种后缀,直接用逻辑或(||)把两个独立判断组合起来就行:
- 精准匹配文件后缀(推荐,避免文件名中间包含
.txt/.csv的误判):@or(endswith(item().name, '.txt'), endswith(item().name, '.csv')) - 如果需要匹配文件名中任意位置包含目标后缀的情况:
@or(contains(item().name, '.txt'), contains(item().name, '.csv'))
二、其他可行方案
1. 变量+Filter的扩展方案(方便后续加更多后缀)
如果以后要加更多格式,可以先把允许的后缀存在变量里,再做判断:
- 新建字符串变量
allowedExtensions,值设为.txt,.csv - Filter活动的条件用以下表达式,自动提取文件后缀并检查是否在允许列表中:
@contains(variables('allowedExtensions'), split(item().name, '.')[sub(length(split(item().name, '.')),1)])
2. 直接在复制活动中配置筛选(跳过Filter)
不用Filter活动,直接在复制活动的源数据集里设置:
- 打开源数据集的连接配置,找到「文件名」选项,选择「通配符」
- 输入框填
*.txt;*.csv,复制活动会自动筛选这两种格式的文件
内容的提问来源于stack exchange,提问作者Master_GoGo
相关产品推荐
相关产品推荐

