17

Windows エクスプローラー (および Linux gnome) では、ファイルごとにサムネイルまたはアイコンが表示されます。EXE、画像、ビデオ、txt ファイル、ini ファイル、Word ドキュメント、その他多くのファイル タイプと同様です。今私の質問です:ファイルごとに(できれば大きい)アイコンを取得する方法はありますか?

何かのようなもの:

public static BufferedImage getThumbnail(File file) {...}

ありがとう

4

4 に答える 4

16

これを行う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 を使用している場合は、少し複雑です。

于 2009-09-30T15:06:48.757 に答える
6

上記の回答が正しい質問に対処しているとは思いません。Martijn は、アイコン画像を操作するための API を求めていません。彼は、ブラウズ可能なファイル システム内のアイテムのサムネイル イメージのデスクトップのキャッシュにアクセスする方法を知りたがっています。

これを行う移植可能な方法はまったくないと思いますが、Linux の世界 (Gnome と KDE) は Freedesktop サムネイル標準に準拠しています

おそらくGtk(おそらくJavaではない)に、Windowsの互換性レイヤーを実装するコードがあるかもしれませんが、存在するかどうかはわかりません。

于 2009-09-30T15:46:26.553 に答える
3

プラットフォームに依存しない (つまり純粋な Java) ソリューションを探している場合は、JavaThumbnailerをご覧ください。ただし、これはまだベータ版であり、サポートされるファイルの種類は限られています。

于 2011-07-29T13:56:04.143 に答える
0

アイコンを取得できるかどうかは完全にはわかりませんが、AssociationServiceJDIC を使用してアクセスできるアイコンを確認してください。

http://java.sun.com/developer/technicalArticles/J2SE/Desktop/jdic_assoc/

また、このスレッドhttp://forums.sun.com/thread.jspa?threadID=5357995

于 2009-09-30T14:39:06.930 に答える