2017-09-26 64 views
0

我正在尝试构建一个基于文件的集成,其中文件被转储到主目录的一个子目录中进行处理。我需要获取子目录的名称,以知道该文件适用于哪个客户端。所以,如果我有:如何获得Apache Camel File2的相对路径段

/uploads/foo/bar.txt

我需要处理该文件,并知道它的客户端“富”。我不知道如何获得该部分并将其设置为处理bar.txt文件的处理器的标题。我有它拿起文件和处理,现在我需要添加在这一块。

任何人有我的想法吗?

回答

2

您可以在交易所的标题中获得大部分信息。在你的情况,你正在消耗文件中的下列项目avlable:

  • CamelFileName:消耗文件从端点配置的起始目录抵消 相对文件路径名。

  • CamelFileNameOnly:只有文件名(没有前导 路径的名称)。

  • CamelFileAbsolute:一个布尔选项,指定消耗的 文件是否表示绝对路径。对于 相对路径通常应该是错误的。通常不应使用绝对路径,但我们将 添加到移动选项以允许将文件移动到绝对路径。但 也可以在其他地方使用。
  • CamelFileAbsolutePath:文件的绝对路径。对于相对 文件,此路径代替相对路径。
  • CamelFilePath:文件路径。对于相关文件,这是起始目录+相对文件名。对于绝对文件,这是绝对路径。
  • CamelFileRelativePath:相对路径。
  • CamelFileParent:父路径。
  • CamelFileLength:包含文件大小的长整型值。
  • CamelFileLastModified:包含文件最后修改后的 时间戳的日期值。

您可以查询这些标题为您正在寻找使用以下示例作为指南的信息:

<log message ="${header.CamelFileAbsolutePath}"/> 

详情请参阅the file component documents在骆驼网站。