有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何检测扩展名已更改为Excel的HTML文件。xls

我有一个java应用程序,可以自动处理电子邮件中的excel文件(.xls、xlsx等)。我注意到有些文件不是本机文件。在Excel中打开将发出警告,指出文件已损坏/格式错误。在notepad++中打开可以清楚地显示HTML

不幸的是,我不能手动处理这些文件,所以我需要一种方法来自动发现它们

我注意到当我使用java时。木卫一。然后使用组织创建文件对象。阿帕奇。蒂卡。蒂卡:我能检测出这种类型。通过file对象,我可以找到扩展名,通过tika。detect()我可以发现该格式称为“text/html”。(不确定这是否是最好的方法,但这似乎适用于我的单一示例)

因此,我可以使用以下方法查找这些类型的文件:

File file = getTheFileObject();
if ( tika.detect(file).equalsIgnoreCase("text/html") && file.getName().contains(".xls") ) { ... do what I want with the corrupt file... }

我的问题来自于对电子邮件附件做类似的事情。要从电子邮件中获取文件,我正在使用com。微软ews java api 2.0,从中我可以得到一个表示文件的FileAttachment对象

但当我尝试使用tika时。detect()在这个(同一个损坏的文件)上,我得到了不同格式的输出“application/octet stream”,而不是“text/html”。或者使用自己的方法获取“application/vnd.ms excel”

如果我不能发现html格式的xls文件,我如何才能发现这些损坏的文件

FileAttachment attachment = getFileAttachment();
attachment.getContentType() //application/vnd.ms-excel
tika.detect(attachment.getContentStream()) //application/octet-stream 

我将如何发现一个html文件,它具有。电子邮件ews文件附件对象的xls文件扩展名?蒂卡还会帮忙吗


共 (0) 个答案