gpt4 book ai didi

java - 在Java中获取文件图标的特定版本

转载 作者:行者123 更新时间:2023-11-30 08:32:45 25 4
gpt4 key购买 nike

我在看这个question我在看第一个答案。

所以我尝试使用这段代码:

public static Image getIcon(String fileName) throws Exception {
File file = new File(fileName);
FileSystemView view = FileSystemView.getFileSystemView();
Icon icon = view.getSystemIcon(file);
ImageIcon imageIcon = (ImageIcon) icon;
Image image = imageIcon.getImage();
return image;
}

它确实返回一个 Image(或抛出一个 Error)但是 Image 的分辨率非常低。

我假设这是因为返回了 16x16 Image

有什么方法可以说明我要返回哪个Image

最佳答案

Java 为您提供了两种检索文件图标的可能性。
你已经知道第一个:

Icon icon = FileSystemView.getFileSystemView().getSystemIcon(new File(FILENAME));

这会给你一个 16x16 像素的结果。

另一个使用 ShellFolder

Icon icon = new ImageIcon(ShellFolder.getShellFolder(new File(FILENAME)).getIcon(true));

将根据 getIcon 方法中的 boolean 标志 getLargeIcon 为您检索较大的 (32x32)。
我为你感到抱歉,但更多的是(目前)使用 java 默认库是不可能的。兴趣存在,您可以阅读 in this JDK bugreport .但到目前为止什么也没做。

如果您真的想要更大的版本,您将需要根据 native 调用使用操作系统检索它们,或者将它们手动存储为本地应用程序资源。

注意:如果您在访问 ShellFolder 时遇到问题,您应该阅读 this question .

关于java - 在Java中获取文件图标的特定版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39918487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com