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

基于文件名时间戳复制最新TXT文件的ADF管道改造问询

解决ADF中筛选带时间戳的最新文件问题

方案1:利用时间戳的字母排序特性直接取最新文件

因为你的文件名时间戳是YYYYMMDD_HHMMSS格式,字母排序顺序和时间先后完全一致,直接用ADF数组排序函数就能快速定位最新文件:

  • 直接在复制活动的源文件路径(或文件名参数)中使用以下表达式,获取排序后的最后一个文件(即最新文件):
    @last(sort(activity('Get Metadata').output.childItems, item().name))
    
    如果只需要提取文件名,就用:
    @last(sort(activity('Get Metadata').output.childItems, item().name)).name
    
    原理:sort()函数按文件名升序排列,最新的时间戳文件名会排在数组最后,last()直接取最后一项即可。

方案2:提取时间戳并筛选最大值对应的文件

如果想更精准地基于时间戳逻辑筛选,可通过变量和表达式实现:

  1. 先初始化一个字符串类型变量(比如var_latestFileName),初始值留空。
  2. 添加一个Set Variable活动,在变量值中使用以下表达式:
    @first(filter(activity('Get Metadata').output.childItems, item().name contains max(foreach(activity('Get Metadata').output.childItems, split(split(item().name, '_')[2], '.')[0])))).name
    
    拆解逻辑:
    • split(item().name, '_')[2]:从文件名中拆分出YYYYMMDD_HHMMSS.TXT部分
    • split(..., '.')[0]:进一步提取纯时间戳字符串YYYYMMDD_HHMMSS
    • max(...):从所有时间戳中找出最大值
    • filter(...):过滤出包含这个最大时间戳的文件
    • first():取过滤结果的第一项(同一表的时间戳唯一,只会有一个结果)
  3. 后续复制活动直接引用这个变量@variables('var_latestFileName')作为源文件名即可。

注意事项

  • 两个方案都无需嵌套ForEach,完全适配你当前的管道结构(已处于ForEach活动内)
  • 确保Get Metadata活动的Child items选项已勾选,才能正确返回文件列表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 21:07:04