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

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

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

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

Благодарю.

3 ответа

Решение

Не могу добавить комментарий, поэтому публикуем как ответ:

Загляните на /questions/12222963/kak-poluchit-znachok-tip-mime-i-prilozhenie-svyazannoe-s-fajlom-na-rabochem-stole-linux

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

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

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

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

FileSystemView view = FileSystemView.getFileSystemView();
Icon icon = view.getSystemIcon(file);
Другие вопросы по тегам