Решение этой задачи мной было найдено, однако оно является платформо-зависимым и точно подходит для систем ОС Windows версии ниже Windows XP (возможно и для других версий ОС Windows - не проверял, кто проверит, пожалуйста, отпишитесь). Платформо-независимого решения не нашел (кроме как анализировать версию ос и самому выбирать нужный способ запуска), если кто знает - поделитесь в комментариях.
Открытие файла происходит с помощью командной строки Windows, имя файла передается как параметр командной строки.
Открытие папки происходит с использованием проводника Windows explorer, имя папки передается как параметр запуска файла explorer.exe.
/** * Opens Windows file in associated application * @param file File to open * @author Cloud */ public static void openFile(File file) { try { String osName = System.getProperty("os.name"); String[] cmd = new String[3]; if (osName.equals("Windows 95")) { cmd[0] = "command.com"; } else { cmd[0] = "cmd.exe"; } cmd[1] = "/C"; cmd[2] = file.getAbsolutePath(); Runtime rt = Runtime.getRuntime(); rt.exec(cmd); } catch (IOException ex) { ex.printStackTrace(); } } /** * Opens windows directory in explorer * @param dir Directory to open * @author Cloud */ public static void openDir(File dir) { try { String[] cmd = new String[2]; cmd[0] = "explorer.exe"; cmd[1] = dir.getAbsolutePath(); Runtime rt = Runtime.getRuntime(); rt.exec(cmd); } catch (IOException ex) { ex.printStackTrace(); } }
Комментариев нет:
Отправить комментарий