Как получить значки и имена папок и файлов linux в java?

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

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

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

спасибо.

3 ответов


не удается добавить комментарий, поэтому публикация в качестве ответа:

взгляните на https://stackoverflow.com/questions/1629172/how-do-you-get-the-icon-mime-type- и-приложения, связанные-с-А-В-С

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


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

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

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

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