34.13. 常用带有文件夹和文件名的 getchas
当 Camel 生成文件(写文件)时,有几个影响如何设置您选择的文件名。默认情况下,Camel 将使用消息 ID 作为文件名,由于消息 ID 通常是唯一生成的 ID,因此您会以文件名(如 ID-MACHINENAME-2443-1211718892437-1-0
)结束。如果不需要此类文件名,则必须在 CamelFileName
消息标头中提供文件名。也可以使用恒定的 Exchange.FILE_NAME
。
以下代码示例使用消息 ID 作为文件名生成文件:
from("direct:report").to("file:target/reports");
from("direct:report").to("file:target/reports");
使用 report.txt
作为您需要执行的文件名:
from("direct:report").setHeader(Exchange.FILE_NAME, constant("report.txt")).to( "file:target/reports");
from("direct:report").setHeader(Exchange.FILE_NAME, constant("report.txt")).to( "file:target/reports");
-
与以上内容相同,但使用
CamelFileName
:
from("direct:report").setHeader("CamelFileName", constant("report.txt")).to( "file:target/reports");
from("direct:report").setHeader("CamelFileName", constant("report.txt")).to( "file:target/reports");
和语法,其中使用 fileName URI 选项在端点上设置文件名。
from("direct:report").to("file:target/reports/?fileName=report.txt");
from("direct:report").to("file:target/reports/?fileName=report.txt");