Получить путь к файлу из подкаталога каталога в CLASSPATH - PullRequest
0 голосов
/ 03 августа 2011

Учитывая следующую структуру каталогов:

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

, но это не сработает, если я не укажу папку, в которой находится волновой файл. Это было бы хорошо, но я не знаю, в какой папке находится каждый волновой файл;Я знаю только их имена.Я собираюсь обработать все файлы так или иначе, но порядок, который я делаю, зависит от файла конфигурации.Кроме того, я не собираюсь редактировать эти файлы напрямую.Вместо этого я собираюсь передать их в качестве аргументов ProcessBuilder.Поскольку в некоторых каталогах пути могут быть пробелы, которые в URL конвертируются в %20, я подумал, что могу конвертировать их с path.replaceAll("%20", " ").Будет ли мне лучше использовать файлы или есть способ получить определенный wav-файл, не зная его родительской папки.

1 Ответ

3 голосов
/ 03 августа 2011

Вы пытались получить загрузчик классов как системный ресурс?Вот фрагмент кода для иллюстрации:

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