私の次のコードでは:
MimeUtil.registerMimeDetector("eu.medsea.mimeutil.detector.MagicMimeMimeDetector");
File f = new File ("c:\\temp\\mime\\java.exe");
Collection<?> mimeTypes = MimeUtil.getMimeTypes("c:\\temp\\mime\\java.exe");
MimeType m = mimeTypes.toArray(new MimeType[mimeTypes.size()])[0];
System.out.println(m);
csv、xls、exe などのファイル タイプが選択されていても、出力は常に application/octet-stream です。
しかし、以下のサイトによると、
http://www.rgagnon.com/javadetails/java-0487.html
ms-word や ms-excel などのように表示されるはずです。
これを機能させる方法は?私が望むのは、ファイルの内容からファイルの種類を取得することだけです(あまり信頼できないファイル拡張子を使用するのではありません)。私は、この単一の目的には多すぎるファイル (20 など) を必要とする tika や、死んだプロジェクトである apache-oro を必要とする JMimeMagic などの他のオプションについて読んでいました。他のすべてのソリューションは、上記のように信頼できないと思われるファイル拡張子に依存しているようです。
ありがとう