Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从类路径中目录的子目录获取文件的路径_Java_File_Resources - Fatal编程技术网

Java 从类路径中目录的子目录获取文件的路径

Java 从类路径中目录的子目录获取文件的路径,java,file,resources,Java,File,Resources,给定以下目录结构: 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 我需要得到每个w

给定以下目录结构:

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");


但它不会工作,除非我指定wave文件所在的文件夹。这很好,但我不知道每个wave文件都在哪个文件夹中;我只知道他们的名字。我将以这样或那样的方式处理所有文件,但处理顺序取决于配置文件。另外,我不会直接编辑这些文件。相反,我将把它们作为参数传递给ProcessBuilder。由于路径中的某些目录可能有空格,这些空格会在URL中转换为
%20
,因此我想我可以使用
path.replaceAll(“%20”,”“)
来转换它们。我最好使用文件,还是有办法在不知道其父文件夹的情况下获取特定的wav文件。

您是否尝试从类加载器获取系统资源?下面是一段代码来说明:

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

您是否尝试从类加载器获取系统资源?下面是一段代码来说明:

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

是的,可以,但我不知道文件夹
file1.wav
在哪个文件夹中。对不起,让我澄清一下我的问题。你可以列出目录并进行查找。是的,这是可行的,但我不知道文件夹
file1.wav
在哪个文件夹中。对不起,让我澄清我的问题。你可以列出目录并进行查找。