给出以下目录结构:
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文件的路径。我认为既然文件夹在工作目录中,并且因此是类路径的一部分(如果我的假设是错误的,我只是将工作目录添加到类路径中),我可以运行:
String path = ClassLoader.getSystemResource("file1.wav");
或
String path = ClassLoader.getSystemResource("/file1.wav");
但它不起作用,除非我指定了wave文件所在的文件夹。这没关系,但我不知道每个wave文件在哪个文件夹中;我只知道他们的名字。我将以某种方式处理所有文件,但我所做的顺序取决于配置文件。另外,我不打算直接编辑这些文件。相反,我将把它们作为参数传递给ProcessBuilder。由于路径中的某些目录可能包含空格(在URL中转换为%20
),因此我认为可以使用path.replaceAll("%20", " ")
转换它们。我是否会更好地使用文件,或者有没有办法获得特定的wav文件,而不知道它的父文件夹。
答案 0 :(得分:3)
您是否尝试从类加载器获取系统资源?这里有一段代码来说明:
String path = ClassLoader.getSystemResource("subfolder1/file1.wav");