Camel 从资源中获取文件名(带路径)

2vuwiymt  于 2022-11-07  发布在  Apache
关注(0)|答案(3)|浏览(235)

我使用camel来创建一些路线。
我在资源文件夹中有一个文件,我只想要文件路径+名称。而不是内容。
当我用途:

from(URI)
 .log("resource:classpath:llave.txt")

我得到了llave.txt的内容,但我需要类似于
C:\something\llave.txt
谢谢你!
为清楚起见,请编辑:我不需要来自文件端点的文件信息(而且,使用文件语言或交换的头很容易获得该信息)。
我需要项目中位于资源文件夹中的文件的信息。

vjrehmav

vjrehmav1#

获取文件:

ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource("llave.txt").getFile());

获取路径:

//full path ( including the file ) 
String absolutePath = file.getAbsolutePath();
// path only
String filePath = absolutePath.
    substring(0, absolutePath.lastIndexOf(File.separator));
yqlxgs2m

yqlxgs2m2#

可以使用Camel在调用File组件后设置得头访问该路径:

from(URI)
 .log("$simple{headers.CamelFileAbsolutePath}")

您可以在此处阅读有关File组件的更多信息:http://camel.apache.org/file2.html

ia2d9nvy

ia2d9nvy3#

使用java.nio,您可以获得完整路径:

String fullPath = Paths.get(getClass().getResource("llave.txt").toURI()).toString();

和文件名:

String fileName = Paths.get(getClass().getResource("llave.txt").toURI()).getFileName();

相关问题