Как узнать новичка файла по умолчанию с Java?

Я должен узнать новичка файла по умолчанию для данного файла в Windows так, чтобы я мог настроить аргументы команды и открыть файл с новичком/средством просмотра по умолчанию.

Мой реальный сценарий использования открывает несколько мультимедийных файлов с медиаплеером пользователя по умолчанию так, чтобы все файлы были добавлены к плей-листу пользователя (Для плееров, которые могут открыть несколько файлов на том же экземпляре). Для операционной системы кроме использования Windows I Desktop.open(File file) метод (я просто не касаюсь открытия нескольких функции файлов OSs кроме Windows), я не могу найти метод, который я могу открыть несколько файлов кроме настройки аргументов команды и выполнения его с помощью должностного лица () метод Класса среды выполнения. Я использую somethig подобный этому:

private void playItems2(List fileList, String playerBinary) {
    String args = " ";
    for (File file : fileList) {
        args += "\"" + file.getAbsolutePath() + "\" ";
    }

    try {
        String command = playerBinary + args;
        Runtime rt = Runtime.getRuntime();
        Process p = rt.exec(command);
    } catch (Exception exc) {/*handle exception*/
        System.err.println("Run Player Exc:" + exc.getMessage());
    }
}

Я использую пользователя указанный путь для playerBinary, то, что я должен, автоматически обнаруживает плеер по умолчанию для первого объекта fileList и используйте его как playerBinary.

Я также посмотрел на Rundll32.exe, и cmd.exe / запускают решения, но они не работали на мой сценарий использования.

Этот вопрос не должен быть перепутан с этим и этим.

5
задан Community 23 May 2017 в 11:53
поделиться

1 ответ

Невозможно сделать только с чистой Java.

В случае Windows, вам нужно прочитать реестр. Предположим, вам нужно узнать ассоциацию файлов для .mp3

  1. В реестре Windows, посмотрите значение по умолчанию для HKEY_CLASSES_ROOT\.mp3. Обычно его "mp3file".
  2. Теперь ищите HKEY_CLASSES_ROOT\mp3file\shell\open\command. Значение там - строка указывающий на открываемый исполняемый файл mp3-файлы с.

Теперь это не может быть сделано на Java, вам нужно выбрать подходящую третью сторону lib, чтобы сделать это за вас.

1
ответ дан 15 December 2019 в 06:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: