2010-06-15 4 views
6

Я создаю дерево папок и файлов в java. Окна и OSX вернуть системные иконки и имя с помощью следующего кода:Как получить папку linux и значки файлов и имена в java?

new JFileChooser().getIcon(File f); 
new JFileChooser().getName(File f); 

Есть ли возможность получить значки и название систем UNIX ?. Системная команда тоже будет в порядке.

Спасибо.

+0

Проблема: Я подозреваю, что это будет зависеть от окружающей среды - это Гном? KDE? XFCE? Другая, менее распространенная среда? Из-за этого решение для кросс-десктопа потребует значительного количества работы и обслуживания - и я не вижу, чтобы Sun это делала. Не может быть уверен в этом. –

+0

Решение для наиболее распространенных диспетчеров дисплеев было бы достаточно. –

ответ

2

не может добавить комментарий, чтобы разместить в ответ:

взглянуть на https://stackoverflow.com/questions/1629172/how-do-you-get-the-icon-mime-type- and-application-associated-with-a-file-in-the

Все эти ответы заставят вас замарать руки на C или C++. Java никогда не рифмован с родным внешним видом ...

+0

Попытка решить эту проблему без создания исполняемого файла на C или C++. Ответ упоминается xdg-mime. Я сначала попробую. –

0

Я не проверял, но этот код должен работать на большинстве систем:

FileSystemView view = FileSystemView.getFileSystemView(); 
Icon icon = view.getSystemIcon(file); 
+1

Нет. Я уже пробовал это. Он только вернет некоторые значки для системы Windows, для OSX и unix вы получите значок каталога по умолчанию и папку в пользовательском интерфейсе. Поэтому я переключился на новый JFileChooser(). GetIcon (File f), который возвращает значки файлов и папок для окон и OSX. –

0

Вы всегда можете получить имя системы, над которой работаете, Java позволяет выполнять собственное выполнение и фиксировать результаты этого (командная строка, поэтому для unix flavors, Runtime.exec ("uname -a");), затем проанализируйте результаты в выходном потоке.

Сказав это, существует множество различных реализаций слоев GUI поверх ядра unix, а не - стандартный способ получения сопоставлений между типами файлов и изображениями значков. Вы можете сделать решение специфичным для диспетчера окон, но вам нужно будет изменить алгоритм, на основе которого используется wm.

+0

В настоящее время работает над конкретной реализацией оконного менеджера. Ответ в ссылке user336851 упоминается xdg-mime, который я пытаюсь использовать. До сих пор я получаю только рабочий стол (нет абсолютного пути, только имя). Любая идея, как продолжать? –