2011-08-03 6 views
0
다음 디렉토리 구조를 감안할 때

의 디렉토리의 하위 디렉토리에서 파일의 경로를 가져옵니다 : 나는 각 wav 파일의 경로를 얻을 필요가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 

. 나는 폴더가 작업 디렉토리에 있고, 따라서 클래스 경로의 일부 (내 가정이 잘못되면, 난 그냥 클래스 경로에 대한 작업 디렉토리를 추가하는 것)이기 때문에, 난 그냥 실행할 수 있다고 생각 :

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

디렉토리를 나열하고 조회 할 수 있습니다. –