当前位置: 首页 > 知识库问答 >
问题:

Apache Tika:从归档文件中删除文件名和MIME类型

金钧
2023-03-14

我希望Tika只输出文件名和文件的MIME类型。我用RecursiveParserWrapperHandler找到了一些解决方案,但问题是BodyContentHandler总是试图解析整个文件,并将文本放在正文内容中。在我的例子中,我只需要映射(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();
}

共有1个答案

倪阳飇
2023-03-14

我找到了解决方案,它是如此简单,只是改变

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

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

就这样,现在处理程序将只从文件返回metdata。

 类似资料:
  • 我想从名为"fajlovi"的文件夹中删除文件。多个和单个删除应该工作。但是它会删除文件夹中的第一个文件(文件夹中文件数组中的0位置)。如果我检查任何文件,它将删除前4个文件,而不是我检查的文件。下面是代码: 1.这是页面的截图: 2.然后我检查要删除的图像: 4.再次进入页面后,我们可以看到错误的图像被删除:

  • 问题内容: 我有一个像这样的textfile.txt: 如何删除最舒适的前三行和最后一行? 问题答案:

  • 问题内容: 我在删除空目录时遇到问题。这是我的代码: 参数是我要传递需要完成工作的目录的位置。该目录如下所示: 请注意,以上所有文件夹均为空。当我运行该脚本的文件夹,单独被删除!但是,文件夹,并不会被删除,即使它们是空文件夹。 编辑: 我得到的例外是: 我在哪里弄错了? 问题答案: 尝试:

  • 我试图理解如何用flume-ng结尾的文件,这样我就可以把数据推到HDFS。在第一个实例中,我设置了一个简单的conf文件: 这是一个测试,我的期望是我将在控制台上看到输出。我使用以下命令运行它: 我得到以下输出: 2005年12月12日11:01:07信息生命周期。生命周期管理程序:启动生命周期管理器1 12/12/05 11:01:07 INFO节点。FlumeNode:Flume节点启动-尾

  • 我有一个名为images的文件夹,位于用户的文件夹中,如: 图像 用户1 当我从数据库中删除一个用户时,我还想删除该用户的所有文件和文件夹。所有这些都在一个包含函数的类中,但是当我执行函数时,我的整个文件夹图像都会被删除。。。 我已经检查了是否选择了正确的用户,路径是否正确。当我在测试的时候。php文件它工作得很好,但在我的函数中它被破坏了。 如果单击“删除”按钮,则转到此功能: 通过给定的id获

  • 我有一个. tar文件,每天都有新文件更新。但是,文件超过60天后就没有价值了,不再需要放在归档中。如何从. tar归档中删除超过60天的文件? 我知道有一个 选项,但我不确定如何搜索符合该条件的文件的存档。