在我的以下代码中:
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 等。
如何使这项工作?我想要的只是从文件内容中获取文件类型(而不是使用不太可靠的文件扩展名)。我正在阅读其他选项,例如 tika 需要太多文件(例如 20 个),这对于这个单一目的来说太多了,而 JMimeMagic 需要 apache-oro 这是一个死项目,因此我也不喜欢这个想法。所有其他解决方案似乎都依赖于文件扩展名,如上所述似乎不可靠。
谢谢