首页 > 解决方案 > Anypoint Studio 和 Mule 中文件连接器文件路径字段的通配符是什么

问题描述

我正在使用 Anypoint Studio 7 和 Mule 4.1。

csv 格式的产品文件,其文件名包含当前时间戳,每天将添加到目录中,需要进行处理。为此,我们正在使用文件连接器创建 mule 工作流,并希望将文件路径字段配置为仅读取 csv 文件格式,而不管名称如何。

目前,我可以让它工作的唯一方法是在文件路径字段中指定文件名,如下所示:

C:/Workspace/product-files-v1/src/main/resources/input/products-2018112011001111.csv

当我想在类似于这样的文件路径中指定某种通配符时:

C:/Workspace/product-files-v1/src/main/resources/input/products-*.csv

但以上不起作用。

什么是正确的通配符语法,还有一种方法可以指定相对文件路径而不是绝对路径,因为当我尝试指定相对文件路径时我也会收到错误?

日志中的错误消息:

********************************************************************************
Message               : Illegal char <*> at index 108: C:/Workspace/product-files-v1/src/main/resources/input/products-*.csv.
Element               : product-files-v1/processors/1 @ product-files-v1:product-files-v1.xml:16 (Read File)
Element XML           : <file:read doc:name="Read File" doc:id="fdbbf477-e831-4e7c-827c-71efd1d2e538" config-ref="File_Config" path="C:/Workspace/product-files-v1/src/main/resources/input/products-*.csv" outputMimeType="application/csv" outputEncoding="UTF-8"></file:read>
Error type            : MULE:UNKNOWN
--------------------------------------------------------------------------------
Root Exception stack trace:
java.nio.file.InvalidPathException: Illegal char <*> at index 108: C:/Workspace/product-files-v1/src/main/resources/input/products-*.csv

谢谢你的帮助

标签: muleanypoint-studiomule-esb

解决方案


我假设<file:matcher>当您想从目录中过滤或读取某些类型的文件时,您需要使用 a 。

一个例子是

<file:matcher
  filename-pattern="a?*.{htm,html,pdf}"
  path-pattern="a?*.{htm,html,pdf}"
/>

推荐阅读