为什么Files.probeContentType返回null

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

我的问题是“Files.probeContentType”返回null …是否有可能由于se7的早期状态为mac? 我的代码:

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”

并且在eclipse中的调试模式下,如果我将鼠标hover在文件“文件路径= Unis-path(id:145)”上方为红色

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

在此期间,您可以使用我自己的FileTypeDetector的backport,它可以通过https://github.com/jeantil/jdk7-mimeutils将maven项目包添加到jar中,该jar可以添加到类路径中以启用mime类型检测。 我还提供了一个mime.types文件放在您的主文件夹中,以便检测正常工作。 我从某个版本的apache中提取了mime.types文件,所以它非常完整。

我发现OS X上的FileTypeDetector有问题: http ://bugs.sun.com/bugdatabase/view_bug.do?video_id = 7133484

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