четверг, 1 марта 2012 г.

Открытие в Windows файла или папки на java

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

Комментариев нет:

Отправить комментарий

Ярлыки

java (31) оптимизация (7) CPanel (5) svn (5) windows xp (5) ошибка (5) свой сервер (5) файлы и папки (5) gui (4) регулярные выражения (4) jacoco (3) redmine (3) windows (3) автоматизация (3) защита данных (3) резервное копирование (3) сервер (3) JavaScript (2) Oracle SQL (2) adsl модем (2) apache maven (2) apache tomcat (2) coverage (2) dropbox (2) excel (2) firewall (2) netbeans (2) office 2007 (2) samsung (2) system tray (системный трей) (2) xerox (2) вирусы (2) принтер (2) сериализация (2) удаленный рабочий стол (2) HTML (1) JFileChooser (1) MySQL (1) Nokia (1) Ovi (1) P660R-T1 (1) WakeOnLan (1) blogger.com (1) ctfmon.exe (1) email (1) flash память (1) ftp (1) integration testing (1) ip (1) jQuery (1) jvisualWm (1) log4j (1) look and feel (1) myBatis (1) php (1) serialVersionUID (1) skype (1) smtp (1) ssh (1) swing (1) torrents (1) unit-testing (1) unix (1) vpn (1) windows 7 (1) xStarter (1) zip (1) безопасность (1) вход в систему (1) дизайн (1) документация (1) заправка (1) интернет (1) логирование (1) мышь (1) патч (1) перенос (1) печать (1) плагины (1) почтовые сообщения (1) программирование (1) процессы (1) прошивка (1) сеть (1) сеть. ошибка (1) скрытые файлы (1) списки (1) фильтрация (1) фокус (1) часовые пояса (1) шифрование (1) экран (1)