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

如何在NiFi中当ListFile包含指定三类文件时才进入后续流程

实现方法

1. 配置ListFile Processor

  • 指定目标文件夹路径到Input Directory参数
  • 在File Filter中填入正则表达式:(abcd_.*\.txt|.*_completed\.txt|phone_detail\d+\.txt),确保能筛选出所有符合三类规则的文件

2. 用RouteOnAttribute判断文件完整性

在ListFile之后串联RouteOnAttribute Processor,通过自定义属性判断三类文件是否全部存在:

  • 添加属性all_files_exist,设置其值为:
${filename:matches('abcd_.*\\.txt'):count() > 0} and ${filename:matches('.*_completed\\.txt'):count() > 0} and ${filename:matches('phone_detail\\d+\\.txt'):count() > 0}

该表达式会分别统计三类文件的存在数量,只有三类都至少有一个时,返回结果为true

  • 配置路由规则:
    • 将all_files_exist=true的数据流路由到后续业务流程
    • 将all_files_exist=false的数据流路由到Terminate关系,直接终止流程

3. 可选:去重处理

如果文件夹内可能存在多个同类型文件(比如多个phone_detail[0-9]+.txt),可在ListFile后添加DistinctValues Processor,按文件类型做去重处理,避免重复计数影响判断逻辑

注意事项

  • NiFi表达式语言中的正则需要双反斜转义,所以表达式里的\d要写成\\d,.匹配任意字符时无需额外转义
  • 若无需遍历子文件夹,需将ListFile的Recurse Subdirectories设为false
  • 可在终止流程前添加LogAttribute Processor,记录缺失的文件类型,方便问题排查

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 01:22:39