java - 读取文件时,如何使用 apache Camel 将输入设置为字符串而不是 filePath
问题描述
我尝试定义一个名为 source 的字符串,它保存了我希望从中传输文件的路径。这是我的代码示例:
String currentDate = sdf.format(date);
String source = "C:\\files\\" + currentDate;
context.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
from("file:source?noop=true")
所以,我基本上想做的是:每天都会在以当前日期命名的特定位置创建一个新文件夹(例如:20191001,20190930),这就是 currentDate 字符串的用途。当我放置特定文件路径(from("file:C:\everything for java\moveInValidFiles\files\20191001?noop=true") )而不是源代码时,代码可以工作,但为此我想使用一个包含自从每天我得到新文件夹以来的路径。无论如何我可以做到这一点吗?
解决方案
如何将输入设置为字符串而不是文件路径的(部分)
以java方式思考。将其视为 java 变量而不是纯字符串。
String currentDate = sdf.format(date);
String source = "C:\\files\\" + currentDate;
context.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
from("file:" + source + "?noop=true")
如何从每天创建的具有特定命名模式的目录中收集文件
文件使用者(from 部分)在路由创建时设置一次,并且永远使用,直到路由被销毁。所以,你可以有以下方法
- 每天都有自己的机制来重新创建路由(使用不同的目录路径)
- 使用Camel File Component查询参数
filterDirectory
(例如"file:C:\\files?noop=true&filterDirectory=${date:now:yyyyMMdd}"
)
推荐阅读
- swift - 查找两个 UIImage 之间的相似度百分比
- flutter - 运行项目时 Flutter vscode 错误任务':app:checkDebugAarMetadata'执行失败
- python - 变量没有从函数返回正确的值
- python - 这个 BFS 实现是否正确?
- reactjs - 像这样布局顶级网页的组件
- c++ - 如何让这个程序重复,直到用户决定终止?
- elasticsearch - 如何在 ElasticSearch 上按当前时间过滤 integer_range 字段?
- javascript - 节点使用ObjectionJS和Knex,1对多,从many表中返回第一个相关行
- arduino - 从 AsyncUDP onPacket 回调中使用 libsodium 解密时触发 ESP32 堆栈金丝雀观察点
- flutter - 当 itemExtent != null 时 ReorderableList 的奇怪行为