gpt4 book ai didi

java - 如何获取 GZIP 中 TAR 的名称以及 TAR 的数量

转载 作者:太空宇宙 更新时间:2023-11-04 08:31:16 25 4
gpt4 key购买 nike

我想知道是否有任何Java API 可以获取GZIP 文件中TAR 文件的名称以及其中TAR 文件的数量。 (不确定 GZIP 中是否允许多个 TAR)

这是我访问 TAR 文件中的文件/目录的方式

    FileInputStream fis = new FileInputStream(new File(sourceFile));
GZIPInputStream gin = new GZIPInputStream(fis);
TarInputStream tin = new TarInputStream (gin);

TarEntry tarEntry = tin.getNextEntry();

我需要检查是否解压了适当的 TAR 文件,因此我需要有关名称的信息。我还需要确保只有一个 TAR 文件,因此我需要 TAR 的数量。

最佳答案

尽管 GZIP 文件可能包含一些元信息(包括原始文件名),但实际上对您没有帮助。该文件名在许多情况下无效,因为 gzip(1) 在创建文件时不知道该名称,因为它不是从文件系统而是通过管道文件句柄获取数据。

因此,通常的约定是,gzip 文件的名称与原始文件名相同,附加“.gz”,或者可选地用“.tgz”替换“.tar”后缀。

好的一面是:一个 GZIP 文件只能包含一个数据流(在本例中又名文件),因此只有一个 TAR 文件。这当然排除了有人连接多个文件、对结果调用 gzip 并将其命名为“.tar.gz”或“.tgz”的恶意情况。

关于java - 如何获取 GZIP 中 TAR 的名称以及 TAR 的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7455687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com