22

私はMacでJavaSe7、Oracleプレビューを使用しています。

私の問題は、「Files.probeContentType」がnullを返すことです...それはMac用のse7の初期のステータスが原因である可能性がありますか?私のコード:

if(directory == null) return;
String content = null;
try {
    content = Files.probeContentType(directory.toPath());
} catch (IOException e) {
    JOptionPane.showMessageDialog(main, e.toString());
    return;
}
if(content == null)
{
    return;
}
else if(content.contains("image"))
{
    main.pctviewer.setImage(directory);
}

ファイルの名前は次のとおりです。

「/Users/admin/Desktop/temp/q12/formulare/Bildschirmfoto2012-09-11um17.57.59.png」

Eclipseのデバッグモードで、ファイル「file path = Unis-path(id:145)」の上にカーソルを合わせると赤になります

4

3 に答える 3

12

バグを再びオラクルに報告しました。彼らがjdk8ソリューションをバックポートすることを望んでいます(私にはあまり希望はありませんが、あなたは決して知りません)。

それまでの間、 https://github.com/jeantil/jdk7-mimeutilsで入手できるFileTypeDetectorの独自のバックポートを使用して、mavenプロジェクトパッケージをjarに追加し、クラスパスに追加してmimeタイプの検出を有効にすることができます。また、検出が正しく機能するように、ホームフォルダーに配置するmime.typesファイルも提供しています。あるバージョンのapacheからmime.typesファイルを抽出したので、かなり完成しています。

于 2013-08-22T15:57:34.730 に答える
4

FileTypeDetectorがOSXでバグがあることがわかりました:http: //bugs.sun.com/bugdatabase/view_bug.do? bug_id = 7133484

どうやらこれはJava8で修正されるでしょう。

于 2013-08-21T06:22:45.977 に答える
1

以下のアプローチを使用して、Java8でmimeタイプのファイルを取得します。

String location = "/Users/user/Desktop/leaf.jpg";
File file = new File(location);
Path source = Paths.get(location);
MimetypesFileTypeMap m = new MimetypesFileTypeMap(source.toString());
System.out.println( m.getContentType(file) );

上記のコードの出力は次のとおりです:'image / jpg'

于 2019-09-13T05:24:35.127 に答える