2016-08-12 113 views
0

该文件夹是/src/img。我需要从img文件夹和所有子文件夹中获取所有文件名(png文件)。我不知道文件夹的完整路径,因此我只需要关注项目资源。我需要他们阵列。使用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原因是项目内提前:)

回答

2

您可以使用relative paths访问它。 在这里,我假设Installer是您的项目名称。否则,您可以根据您的项目设置编辑相对路径。

Files.walk(Paths.get(".//src//img//")).forEach(filePath -> { 
       if (Files.isRegularFile(filePath)) { 
        System.out.println(filePath); 
       } 
      }); 
+0

与“.//src//img//” – Ralfi

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"); 
+0

我需要的所有文件,而不是只有一个 – Ralfi

+1

@Ralfi你知道各自的名称或文件只是一个任意号码?第一个可以通过使用名称列表来管理,第二个没有被类加载器API用于加载资源,您必须为自己想一个命名/目录方案(即使用'/ tmp/installer'或任何其他方法确定的目录名称可用于任何正在运行程序的机器,或为程序的用户配置路径)。 – Smutje

+0

我不知道名字伤心。我需要获取所有文件。你能告诉我在我的情况下类加载器API的例子吗? – Ralfi

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); 
     } 
    }); 
相关问题