Мне нужно найти средство открытия файлов по умолчанию для данного файла в Windows, чтобы я мог настроить аргументы команды и открыть файл с помощью средства открытия / просмотра по умолчанию.
Мой реальный сценарий использования - открытие нескольких мультимедийных файлов с медиаплеером пользователя по умолчанию, так что все файлы будут добавлены в плейлист пользователя (для плееров, которые могут открывать несколько файлов в одном экземпляре). Для операционной системы, отличной от Windows, я использую метод Desktop.open(File file)
(я просто не касаюсь возможности открытия нескольких файлов для ОС, отличных от Windows), я не могу найти какой-либо метод, с помощью которого можно открыть несколько файлов, кроме настройки аргументов команды и запуска ее с помощью exec () метод класса Runtime. Я использую что-то похожее на это:
private void playItems2(List<File> 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 / start , но они не работали для моего сценария использования.
Этот вопрос не следует путать с этим и этим .