为什么 Files.probeContentType 返回 null

2022-09-02 04:33:01

我在mac上使用java se7,预言机预览。

我的问题是“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/Bildschirmfoto 2012-09-11 um 17.57.59.png”

在日食中的调试模式下,如果我将鼠标悬停在文件“文件路径= Unis-path(id:145)”为红色


答案 1

我已经再次向oracle报告了这个错误,希望他们能向后移植jdk8解决方案(我没有太大的希望,但你永远不会知道)。

同时,您可以使用我自己的 FileTypeDetector 的向后移植,https://github.com/jeantil/jdk7-mimeutils maven 项目包添加到一个 jar 中,该 jar 可以添加到您的类路径中以启用 mime 类型检测。我还提供了一个 mime.types 文件,用于放入您的个人文件夹中,以便检测正常工作。我从某个版本的apache中提取了mime.types文件,所以它非常完整。


答案 2

我发现FileTypeDetector在OS X上是错误的:http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7133484

显然,这将在Java 8中修复。