Java - 如何获取项目中文件的正确绝对路径
Java - How to get the correct absolute path of a file within a project
我的 Java 项目中的一个文件夹中有一个 XML 文件,我想获取它的绝对路径,这样我就可以将它作为文件加载以便解析它(DOM)。我不想使用 absolute/relative 路径,而是只想指定文件名,然后获取绝对路径。我尝试用几种不同的方式来做到这一点,但我得到的路径中总是缺少一个文件夹名称。
我得到:
C:\Users\user\workspace\projectName\Input.xml<br>
而不是:
C:\Users\user\workspace\projectName\**Folder1**\Input.xml
-
File input = new File(project.getFile("Input.xml").getLocation().toString());`
File input = new File(project.getFile("Input.xml").getRawLocation().makeAbsolute().toString());
File input = new File(project.getFile("Input.xml").getLocationURI().getRawPath().toString());
File input = new File(project.getFile("Input.xml").getFullPath().toFile().getAbsolutePath());
如何获得正确的路径,包括 Folder1
?
阅读你的问题(你的项目在工作区目录中)我想你是在谈论 Eclipse 中的一个项目。
好吧,你的应用 运行 进入 Eclipse 的默认目录就是你项目的基本目录。
所以如果你 运行 在你的主目录中有这样的东西:
Files.newDirectoryStream(Paths.get("."))
.forEach(path -> {
System.out.println(path);
System.out.println(path.toFile().getAbsolutePath());
});
您应该会看到项目中的所有文件和目录。
所以如果你想要的只是项目的绝对路径运行:
System.out.println(Paths.get(".").toFile().getAbsolutePath());
如果你想打开资源 Input.xml
仅指定名称,我建议将你需要的所有文件移动到一个目录中,运行 方法如下:
public static File getFileByName(String name, String path) throws IOException {
ArrayList<File> files = new ArrayList<>();
Files.newDirectoryStream(Paths.get(path))
.forEach(p -> {
if (p.getFileName()
.equals(name))
files.add(p.toFile());
});
return files.size() > 0 ? files.get(0) : null;
}
我的 Java 项目中的一个文件夹中有一个 XML 文件,我想获取它的绝对路径,这样我就可以将它作为文件加载以便解析它(DOM)。我不想使用 absolute/relative 路径,而是只想指定文件名,然后获取绝对路径。我尝试用几种不同的方式来做到这一点,但我得到的路径中总是缺少一个文件夹名称。
我得到:
C:\Users\user\workspace\projectName\Input.xml<br>
而不是:
C:\Users\user\workspace\projectName\**Folder1**\Input.xml
-
File input = new File(project.getFile("Input.xml").getLocation().toString());`
File input = new File(project.getFile("Input.xml").getRawLocation().makeAbsolute().toString());
File input = new File(project.getFile("Input.xml").getLocationURI().getRawPath().toString());
File input = new File(project.getFile("Input.xml").getFullPath().toFile().getAbsolutePath());
如何获得正确的路径,包括 Folder1
?
阅读你的问题(你的项目在工作区目录中)我想你是在谈论 Eclipse 中的一个项目。
好吧,你的应用 运行 进入 Eclipse 的默认目录就是你项目的基本目录。
所以如果你 运行 在你的主目录中有这样的东西:
Files.newDirectoryStream(Paths.get("."))
.forEach(path -> {
System.out.println(path);
System.out.println(path.toFile().getAbsolutePath());
});
您应该会看到项目中的所有文件和目录。
所以如果你想要的只是项目的绝对路径运行:
System.out.println(Paths.get(".").toFile().getAbsolutePath());
如果你想打开资源 Input.xml
仅指定名称,我建议将你需要的所有文件移动到一个目录中,运行 方法如下:
public static File getFileByName(String name, String path) throws IOException {
ArrayList<File> files = new ArrayList<>();
Files.newDirectoryStream(Paths.get(path))
.forEach(p -> {
if (p.getFileName()
.equals(name))
files.add(p.toFile());
});
return files.size() > 0 ? files.get(0) : null;
}