Решение этой задачи мной было найдено, однако оно является платформо-зависимым и точно подходит для систем ОС 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();
}
}
Комментариев нет:
Отправить комментарий