该文件夹为/src/img
。我需要从png
文件夹和所有子文件夹中获取所有文件名(img
文件)。我不知道该文件夹的完整路径,所以我只需要关注项目资源。我需要它们在阵列中。使用Java8和Eclipse Mars。
到目前为止,这有效:
try {
Files.walk(Paths.get("/home/fixxxer/NetBeansProjects/Installer/src/img/")).forEach(filePath -> {
if (Files.isRegularFile(filePath)) {
System.out.println(filePath);
}
});
} catch (IOException ex) {
Logger.getLogger(InstallFrame.class.getName()).log(Level.SEVERE, null, ex);
}
问题是需要像这样调用文件夹:
/img
因为它在项目中
在此先感谢:)
答案 0 :(得分:2)
您可以使用relative paths。
在这里,我假设Installer
是您的项目名称。否则,您可以根据项目设置编辑相对路径。
Files.walk(Paths.get(".//src//img//")).forEach(filePath -> {
if (Files.isRegularFile(filePath)) {
System.out.println(filePath);
}
});
答案 1 :(得分:0)
如果您放置文件
test.png
下
/src/resources/org/example
您可以从班级访问
org.example.InstallFrame
使用
final URL resource = InstallFrame.class.getResource("test.png");
分别
final InputStream resourceAsStream = InstallFrame.class.getResourceAsStream("test.png");
答案 2 :(得分:0)
首先找到基本路径,然后在代码中使用
String basePath = ClassLoader.getSystemResource("").getPath();
//move basepath to the path where img directory
//present in your project using ".."
//like basepath = basepath+"..\\..\\img"+
Files.walk(Paths.get(testPath)).forEach(filePath -> {
if (Files.isRegularFile(filePath)) {
System.out.println(filePath);
}
});