如何获取项目 /resources 文件夹中文件的绝对路径

2022-08-31 08:50:03

假设标准 maven 设置。

假设在您的资源文件夹中您有一个文件 。abc

在Java中,我如何获得文件的绝对路径?


答案 1

实际工作的正确方式:

URL resource = YourClass.class.getResource("abc");
Paths.get(resource.toURI()).toFile();

现在,类路径中的文件物理位置并不重要,只要资源实际上是文件而不是 JAR 条目,就可以找到它。

(看似显而易见的并不适用于所有路径!该路径仍然是 URL 编码的!new File(resource.getPath())


答案 2

可以使用方法来获取正确的资源。ClassLoader.getResource

URL res = getClass().getClassLoader().getResource("abc.txt");
File file = Paths.get(res.toURI()).toFile();
String absolutePath = file.getAbsolutePath();

虽然这可能不是一直有效的,但更简单的解决方案 -

您可以创建一个对象并使用方法:FilegetAbsolutePath

File file = new File("resources/abc.txt");
String absolutePath = file.getAbsolutePath();