Выбор всех .mp3 файлов из папки

Имеется метод который позволяет выбрать путь (localpath) до папки с музыкой, однако, если пытаюсь вставить localpath в directory = new File(localpath); выдаёт ошибки:

java.lang.reflect.InvocationTargetException

java.lang.RuntimeException

java.lang.NullPointerException

Необходимо сделать так, чтобы пользователь указывал путь до папки с музыкой, в Initialize передавался путь и программа собирала все треки, а затем воспроизводила их.

public void getPath() {
        try {
            Stage stage = (Stage) pane.getScene().getWindow();
            DirectoryChooser directoryChooser = new DirectoryChooser();
            directoryChooser.setInitialDirectory(new File("music"));
            File selectedDirectory = directoryChooser.showDialog(stage);
            localpath = selectedDirectory.getAbsolutePath();
            System.out.println(localpath);
            currentPath.setText("Current path: " + localpath);
        } catch(java.lang.RuntimeException exc) {showAlert();}
    }

    @Override
    public void initialize(URL url, ResourceBundle resourceBundle) {

        songs = new ArrayList<File>();
        directory = new File("music");
        files = directory.listFiles();

        if (files != null) {
            for (File file : files) {
                songs.add(file);

            }
        }


        media = new Media(songs.get(songNumber).toURI().toString());
        mediaPlayer = new MediaPlayer(media);

Ответы (1 шт):

Автор решения: Вадим

Можно воспользоваться apache commons

File directory = new File("music");
files = (List<File>) FileUtils.listFiles(directory , {"mp3","wav"}, true)

Подробнее здесь

→ Ссылка