如何从项目文件夹中获取文件

时间:2016-08-12 05:45:36

标签: java file

该文件夹为/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因为它在项目中 在此先感谢:)

3 个答案:

答案 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);
        }
    });