【问题标题】:Apache Tika: exctract file names and MIME types from archiveApache Tika:从存档中提取文件名和 MIME 类型
【发布时间】:2020-06-05 15:13:51
【问题描述】:

我希望 Tika 仅输出文件的文件名和 MIME 类型。 我用 RecursiveParserWrapperHandler 找到了一些解决方案,但问题是 BodyContentHandler 总是尝试解析整个文件并将文本放入正文内容中。在我的情况下,我只需要 Map(fileName, MIMEType) 作为返回结果,而不需要解析整个文件。 我怎样才能做到这一点?

 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();
}

【问题讨论】:

    标签: java parsing apache-tika


    【解决方案1】:

    我找到了解决方案,很简单,只需更改

        ContentHandlerFactory factory = new BasicContentHandlerFactory(
            BasicContentHandlerFactory.HANDLER_TYPE.HTML, -1);
    

        ContentHandlerFactory factory = new BasicContentHandlerFactory(
            BasicContentHandlerFactory.HANDLER_TYPE.IGNORE, -1);
    

    就是这样,现在处理程序将只返回文件中的元数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-30
      • 2010-11-05
      相关资源
      最近更新 更多