2015-11-15 180 views
0

簡單一些。它一直困擾着我,因爲我只有一個文件夾,我應該把我的項目的所有紋理 - 只有一個!你可以想象這會很快變得混亂。Java路徑目錄,打開文件夾內的文件夾

BufferedImage image = ImageIO.read(new File("./res/textures/" + fileName)); 

這一小段代碼可以讓我得到我的項目中從紋理文件夾中的文件分別,JAVA只能找到這一個文件夾中的「文件名」字符串。

由於我想要在紋理文件夾中有多個文件夾,我想知道是否以及如何告訴java需要檢查'textures'文件夾中的任何給定'fileName'的所有文件夾,任何人的建議?

+0

循環的子文件夾中,循環中的文件並進行搜索......,沒有自動命令,如果你不知道確切的路徑.. –

+0

這取決於,你可以做'fileName'包含子文件夾前綴'例如,/ ground/stone.png'。您可以爲每個「組」或「enum」使用'static final'常量,'Textures.GROUND.load(「stone.png」)'可以生成「地面」紋理文件夾的路徑並將圖像後綴名稱 – MadProgrammer

+1

您也可以使用'Paths'來[走一個文件樹](https://docs.oracle.com/javase/tutorial/essential/io/walk.html) - 但這非常低效。這將會是更好的預掃描的目錄和名稱 – MadProgrammer

回答

1

你想要把紋理到子文件夾,因爲這是一個爛攤子讓他們都集中在一起,但你想只通過名稱引用它們重新引入代碼中的那些亂七八糟的?

你的fileName組件不一定只是文件名,你也可以有子路徑 - 這就是你想要做的。它比掃描子文件夾更簡單,更快速,更有組織。

+0

哦,我現在看到..是的,這是有道理的所以不要只說「stone.png」,我可以說類似「/directory1/directory2/stone.png」..謝謝,不知道爲什麼這不會發生在我身上.. – DisasterCoder