2011-08-03 65 views
0

考慮到以下目錄結構:從目錄的子目錄中獲取文件的路徑在CLASSPATH

working-directory 
    subfolder1 
     file1.wav 
     file2.wav 
     file3.wav 
    subfolder2 
     file4.wav 
     file5.wav 
     file6.wav 
    subfolder3 
     file7.wav 
     file8.wav 
     file9.wav 
    jar-that-im-running.jar 

我需要的路徑,每個wav文件。我想,因爲文件夾是在工作目錄,因此是CLASSPATH的一部分(如果我的假設是錯誤的,我只是添加了工作目錄到classpath),我可以只運行:

String path = ClassLoader.getSystemResource("file1.wav"); 

String path = ClassLoader.getSystemResource("/file1.wav"); 

,但它不會工作,除非我指定的波形文件是這將是很好,但我不知道是什麼文件夾下的波形文件所在的文件夾。我只知道他們的名字。我將以各種方式處理所有文件,但我所做的順序取決於配置文件。另外,我不會直接編輯這些文件。相反,我會將它們作爲參數傳遞給ProcessBuilder。由於路徑中的某些目錄可能有空格,這些空格會在URL中轉換爲%20,我想我可以使用path.replaceAll("%20", " ")來轉換它們。我會使用文件更好嗎,還是有辦法獲得特定的wav文件,而不知道它的父文件夾。

回答

3

您是否嘗試從類加載器獲取系統資源?這裏有一段代碼來說明:

String path = ClassLoader.getSystemResource("subfolder1/file1.wav"); 
+0

是的,這工作,但我不知道什麼文件夾'file1.wav'在。對不起,讓我澄清我的問題。 – cesar

+0

你可以列出目錄並查看。 –

相關問題