当前位置: 首页 > 面试题库 >

如何在不创建临时文件的情况下获取文件扩展名或文件类型的图标?

高才
2023-03-14
问题内容

我在图标中列出了一些文件名及其图标(例如Windows资源管理器中的图标)JTable。我知道File从本地文件系统中获得对象的两种获取图标的方法:

javax.swing.filechooser.FileSystemView.getFileSystemView().getSystemIcon( file )

16x16或更大的图标:

sun.awt.shell.ShellFolder.getShellFolder( file ).getIcon( true ) )

由于我的文件存储在数据库中,因此没有File对象。我的解决方法是创建一个具有特定文件扩展名的临时文件,使用上述两种方法之一,并缓存图标以在CellRenderer中显示它。

我搜索了没有临时文件的解决方案,发现两个我都不喜欢的文件:

  • org.eclipse.swt.program.Program.findProgram(String extension).getImageData(),但我不想使用SWT
  • org.jdesktop.jdic.icons.IconService来自JDIC项目的孵化器。上的最后更改IconService是6年前,2年前是JDIC,我找不到可下载的jar。

还有其他解决方案吗?


问题答案:

看起来像你已经发现做到这一点,除非你想潜入图书馆等原生

FileSystemView 在内部使用Win32ShellFolder,因此它们基本相同。

我还挖出了源动力org.eclipse.swt.program.Program并与它org.eclipse.swt.internal.win32.OS。然后,OS类将本地调用用于Icon。在这一点上,除非您真的不能创建临时文件,否则我不会沿该路径走。

对于JDIC,我只发现了一点点就能找到http://kickjava.com/src/org/jdesktop/jdic/tray/internal/impl/WinTrayIconService.java.htm(可能不相关,但可以做标志性的事情:D)
。也称为本地。



 类似资料:
  • 问题内容: 为了清楚起见,我不是在寻找MIME类型。 假设我有以下输入: 我想要一种分解此输入的方法,特别是扩展。有没有内置的方式可以做到这一点?我想避免编写自己的解析器。 问题答案: 在这种情况下,使用FilenameUtils.getExtension从Apache的百科全书IO 这是如何使用它的示例(你可以指定完整路径或仅指定文件名): Maven依赖项: Gradle Groovy DSL

  • 在C语言中,我可以用和调用来创建新文件,当且仅当当前没有同名文件时。我还没能在哈斯克尔找到这样做的方法。我更喜欢提供的友好的东西,最好是为我完成所有棘手的异常处理。(我不一定期望它能正确地为我完成,但那是另一回事。)

  • 我想提取Unix tar xvf/home/test/group中的tar文件。tar和提取后得到一个文件夹组,其中包含xls、pdf和txt文件列表。 我怎样才能提取内容的group.tar /home/test/list的xls, pdf文件没有创建组文件夹。 任何特定的命令可用或必须跟随复制和移动?? 谢啦!

  • 问题内容: 我有这个PHP代码: 如果我有一个名为的文件,则此函数返回。 我想做相反的事情,我希望函数不带扩展名就返回。 该文件只是变量中的字符串。 问题答案: 不需要所有这些。签出pathinfo() ,它为您提供了路径的所有组件。 手册中的示例: 代码输出: 或者,您只能获得某些部分,例如:

  • cmf_get_file_extension($filename) 功能 获取文件扩展名 参数 $filename: string 文件名 返回 string 文件扩展名

  • X2.2.0新增 sp_get_file_extension($filename) 功能: 获取文件扩展名 参数: $filename: 文件名 返回: 类型string,文件扩展名 使用: $suffix = sp_get_file_extension('23232.png');