Как получить значки и имена папок и файлов 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);