【问题标题】:How to list the contents of a compressed tar file in Java如何在 Java 中列出压缩的 tar 文件的内容
【发布时间】:2011-03-16 01:50:33
【问题描述】:

如何在 Java 中列出压缩的 tar 文件的内容而不提取文件?我看过 apache ant api,我可以看到如何提取文件,但我不知道如何列出它们。 tar 文件是 bz2 或 gz。

【问题讨论】:

    标签: java tar


    【解决方案1】:

    我建议使用TrueZIP真的很好。

    TrueZIP 是一个用于虚拟文件系统的框架和一个用于访问存档文件的库,就好像它们只是普通的旧目录一样。

    作为一个框架,TrueZIP 提供了接口和类来编写插入到其联合文件系统空间的文件系统驱动程序。

    作为一个库,TrueZIP 为存档文件提供了方便的多线程读/写访问,就好像它们只是文件系统路径中的普通旧目录一样。

    这是一个出色、快速的库。它有TAR driverscan handle *.tar.gz and *.tar.bz2 files。 JavaDocs 清晰而完整,尽管我发现独立的教程不够 - 我必须阅读 JavaDoc 才能使事情正常进行。

    ...这让我发现了我发现的唯一缺点:可能需要一点时间才能了解 TrueZIP。最初,我在让任何东西工作时都遇到了问题,但过了一会儿它“点击”了,我就没有更多困难了。

    【讨论】:

    • 谢谢,我已经尝试过了,它在大多数情况下都可以工作,但是有些 tar 文件似乎会抛出异常或给出不正确的结果。即包含目录作为第一个条目但没有尾部正斜杠的 tar 文件。
    • 链接已失效。
    • @ImpulseTheFox 感谢您的提醒。我已经修复了链接,但随时欢迎您自己提出修改建议:)
    【解决方案2】:
    TarArchiveInputStream tin = new TarArchiveInputStream(new FileInputStream(tempFile));
    ArchiveEntry entry = tin.getNextEntry();
    while (entry != null) {
      System.out.println("File Name " + entry.getName());//List file name
      entry = tin.getNextEntry();      
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多