我正在使用Camel 2.17,我想生成一个文件。 如果该文件已经存在,我想将现有文件移动到另一个文件夹中,并为移动的文件添加时间戳。
这是我使用的代码:
from("activemq:queue:MYQUEUE")
.toD("file:/opt/data/out?"
+ "fileName=toto.txt"
+ "&fileExist=Move"
+ "&moveExisting=issue/${date:now:yyyyMMdd_HHmmss_}${file:onlyname}");
预期的行为:
在以下位置创建的文件:/opt/data/out/issue/20190226_162001_toto.txt
获得的行为:
文件创建于:/opt/data/out/issue/20190226_163226_\toto.txt
子目录20190226_163226_
已创建。
感谢您的帮助!
答案 0 :(得分:2)
这是我的问题的解决方案:
只需将.toD("file")
替换为.to("file")
现在可以了
答案 1 :(得分:0)
在这种情况下,ShopGlobalVariables.dismissCounter
和文件组件可能有点问题/错误。但是,在此用例中,您不应不使用toD,因为文件组件已经通过 to 支持了。由于self.itemAnimationImage.transform = .identity
选项接受简单表达式并对此有特殊支持。
更新:好的,实际上它是按设计的,因为您使用的是toD
,则首先评估端点moveExisting,然后在文件生产者读取此值时,将其视为静态值,默认情况下,它将自动采用其文件夹名称(这是这些选项的工作方式),并因此将其创建为文件夹而不是最终文件名。