2016-08-12 90 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); 
     } 
    }); 
相關問題