| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: GUI и Java FX приложения > получение иконки файла пол linux |
| Автор: Atum 13.4.2010, 15:32 | ||
| Добрый день есть такой вот код под OS Window
который возвращает иконку 32 на 32 файла или папки File file = new File("E:\\Project1.dll"); но ShellFolder sf.getIcon(true) под linux возвращает null вопрос : как получить иконку файла под linux ? |
| Автор: jk1 13.4.2010, 16:35 |
| Видимо стоит указать правильный путь к файлу вместо E:\\Project1.dll |
| Автор: Atum 13.4.2010, 16:44 | ||
Это пример под Window можно было записать E:\\TMP где TMP - это папка соответственно под linux у меня идут правильные пути для примера возьмите любой файл (папку) /home и т.д. |
| Автор: jk1 13.4.2010, 17:31 | ||
При правильном указании пути работает под всеми осями. Что касается ShellFolder, то этот странный недокументированный класс может отсутствовать на некоторых JVM и в целях совместимости использовать его не стоит. |
| Автор: Atum 14.4.2010, 10:16 |
| Хорошо Уточню свой вопрос - как мне получить Иконку файла или Папки под Linux ( у меня сейчас есть Solaris и Ubuntu ) |
| Автор: jk1 15.4.2010, 11:41 | ||
Под Linux (пробовал под Fedora) работает такой фокус
|
| Автор: Atum 15.4.2010, 16:51 | ||||
Спасибо , но это решение я знаю - оно немного мне не подходит и вот почему : Возвращается иконка не операционной системы , а java для примера возьмите и укажите в пути папку - и посмотрите как отображается иконка папки в системе её - цвет , размер и т.д. и то что вернется в icon - вернется иконка java из java tree ...с размером 16 на 16 , а мне надо 32 на 32 (ну или тот размер который стоит в системе сейчас). |
| Автор: Amp 15.4.2010, 18:27 |
| В файловом менеджере muCommander на этот счет заморачиваться не стали и предоставили в настройках выбор - либо программа использует свой набор иконок, либо то, что возвращает java (т.е. в линуксе оно ничего вразумительного не возвращает). Из отвязанных от каких-то специфических библиотек и api вариантов решения проблемы вижу следующее: определение текущей темы иконок в системе (наверное это требует различных действий для разных десктоп-менеджеров). Далее по пути /usr/share/icons/<имя темы>/ извлекаются иконки в соответствии с требуемым размером и mimetype-ом. Костыли, как они есть. Информация отсюда может чем-то поможет - http://standards.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html |
| Автор: Atum 16.4.2010, 08:39 |
| спасибо - буду пробовать |