Windows エクスプローラー (および Linux gnome) では、ファイルごとにサムネイルまたはアイコンが表示されます。EXE、画像、ビデオ、txt ファイル、ini ファイル、Word ドキュメント、その他多くのファイル タイプと同様です。今私の質問です:ファイルごとに(できれば大きい)アイコンを取得する方法はありますか?
何かのようなもの:
public static BufferedImage getThumbnail(File file) {...}
ありがとう
Windows エクスプローラー (および Linux gnome) では、ファイルごとにサムネイルまたはアイコンが表示されます。EXE、画像、ビデオ、txt ファイル、ini ファイル、Word ドキュメント、その他多くのファイル タイプと同様です。今私の質問です:ファイルごとに(できれば大きい)アイコンを取得する方法はありますか?
何かのようなもの:
public static BufferedImage getThumbnail(File file) {...}
ありがとう
これを行うAWTの方法はないようです。
Swing を使用している場合は、Swing を取得するために使用できる方法がありますIcon
...
import javax.swing.filechooser.FileSystemView;
import javax.swing.Icon;
...
Icon ico = FileSystemView.getFileSystemView().getSystemIcon(file);
これを(おそらく BufferedImage ですが、テストしていません) にIcon
戻すこともできます。Image
Image image = ((ImageIcon) ico).getImage();
アイコンを直接取得するクラスもありますが、このクラスはJDK依存です。Sun JDK ではsun.awt.shell.ShellFolder
クラスです。
SWT を使用している場合は、少し複雑です。
上記の回答が正しい質問に対処しているとは思いません。Martijn は、アイコン画像を操作するための API を求めていません。彼は、ブラウズ可能なファイル システム内のアイテムのサムネイル イメージのデスクトップのキャッシュにアクセスする方法を知りたがっています。
これを行う移植可能な方法はまったくないと思いますが、Linux の世界 (Gnome と KDE) は Freedesktop サムネイル標準に準拠しています。
おそらくGtk(おそらくJavaではない)に、Windowsの互換性レイヤーを実装するコードがあるかもしれませんが、存在するかどうかはわかりません。
プラットフォームに依存しない (つまり純粋な Java) ソリューションを探している場合は、JavaThumbnailerをご覧ください。ただし、これはまだベータ版であり、サポートされるファイルの種類は限られています。
アイコンを取得できるかどうかは完全にはわかりませんが、AssociationService
JDIC を使用してアクセスできるアイコンを確認してください。
http://java.sun.com/developer/technicalArticles/J2SE/Desktop/jdic_assoc/