Java ApacheTika:从归档文件中导出文件名和MIME类型
我希望Tika只输出文件名和MIME类型的文件。 我用递归ParserWrapperHandler找到了一些解决方案,但问题是BodyContentHandler总是尝试解析整个文件,并将文本放到正文内容中。在我的例子中,我只需要Map(fileName,MIMEType)作为返回结果,而不需要解析整个文件。 我该怎么做Java ApacheTika:从归档文件中导出文件名和MIME类型,java,parsing,apache-tika,Java,Parsing,Apache Tika,我希望Tika只输出文件名和MIME类型的文件。 我用递归ParserWrapperHandler找到了一些解决方案,但问题是BodyContentHandler总是尝试解析整个文件,并将文本放到正文内容中。在我的例子中,我只需要Map(fileName,MIMEType)作为返回结果,而不需要解析整个文件。 我该怎么做 static public List<Metadata> recursiveParserWrapperExample() throws IOException,
static public List<Metadata> recursiveParserWrapperExample() throws IOException,
SAXException, TikaException {
Parser p = new AutoDetectParser();
ContentHandlerFactory factory = new BasicContentHandlerFactory(
BasicContentHandlerFactory.HANDLER_TYPE.HTML, -1);
RecursiveParserWrapper wrapper = new RecursiveParserWrapper(p);
Metadata metadata = new Metadata();
metadata.set(TikaCoreProperties.ORIGINAL_RESOURCE_NAME, "test.rar");
ParseContext context = new ParseContext();
RecursiveParserWrapperHandler handler = new RecursiveParserWrapperHandler(factory, -1);
try (InputStream stream = new FileInputStream(new File("C:\\Users\\alex\\home\\projects\\self\\zip\\test.rar"))) {
wrapper.parse(stream, handler, metadata, context);
}
return handler.getMetadataList();
}
static public List recursiveParserWrapperExample()抛出IOException,
特例{
Parser p=new AutoDetectParser();
ContentHandlerFactory=新的基本ContentHandlerFactory(
BasicContentHandlerFactory.HANDLER_TYPE.HTML,-1);
RecursiveParserRapper包装器=新的RecursiveParserRapper(p);
元数据=新元数据();
set(TikaCoreProperties.ORIGINAL_RESOURCE_NAME,“test.rar”);
ParseContext=新的ParseContext();
RecursiveParserWrapperHandler=新的RecursiveParserWrapperHandler(工厂,-1);
尝试(InputStream=新文件InputStream(新文件(“C:\\Users\\alex\\home\\projects\\self\\zip\\test.rar”)){
parse(流、处理程序、元数据、上下文);
}
返回处理程序.getMetadataList();
}
我找到了解决方案,只要改变一下就好了
ContentHandlerFactory factory = new BasicContentHandlerFactory(
BasicContentHandlerFactory.HANDLER_TYPE.HTML, -1);
到
就是这样,现在处理程序将只返回文件中的metdata。我找到了解决方案,只需更改即可
ContentHandlerFactory factory = new BasicContentHandlerFactory(
BasicContentHandlerFactory.HANDLER_TYPE.HTML, -1);
到
就这样,现在处理程序将只从文件返回metdata