Zip 文件元数据奇怪 – 合理还是可疑?

问题描述 投票:0回答:1

创建包含目录E的目录D。在E中创建文件F1和F2。将 D 转换为 zip 文件。

使用 python 和 zipfile 模块检查此 zip 文件,或使用 CLI 标志检查 7zip 来获取技术信息(即 7z -l -slt D.zip),会显示相同的内容,两个文件和一个目录。使用 7z CLI,我得到如下信息:

Path = D\E
Folder = +
Size = 0
Packed Size = 0
Modified = 2024-05-11 19:32:56
[...]

Path = D\E\F1.txt
Folder = -
Size = 2
Packed Size = 2
Modified = 2024-05-11 19:26:06
[...]

Path = D\E\F2.txt
Folder = -
Size = 5
Packed Size = 5
Modified = 2024-05-11 19:26:24
[...]

因此,F1 和 F2 这两个文件都有一个“Modified”元数据字段,但这里重要的一点是,文件夹 E(上面列表中的第一个)也是如此。

现在是有趣的事情。我收到了一个 .zip 文件,该文件应该包含法律证据。解压后,它会在三个子目录中创建八个文件。这八个文件具有合理的“修改”元数据日期,但三个子目录没有日期元数据(或任何其他元数据),无论我使用 python+zipfile 还是 7zip 查看。

我对这三个目录的创建日期非常感兴趣,因为我想知道是否有人解压了原始文件,删除了一两个文件,然后将它们压缩回来并发送给我,剥离了目录创建时间以隐藏小提琴。

仔细阅读格式,.zip 文件中的元数据似乎存储在两个位置

“.ZIP 格式...包括每个条目元数据的两个副本 提供更好的保护,防止数据丢失”

https://en.wikipedia.org/wiki/ZIP_(file_format)。所以我猜这些文件是使用本地标头数据读回的,但目录/文件夹信息只会存在于 zip 文件的中央目录 (CD) 中。

我猜 CD 不见了。

所以问题是:

  • 这(没有 CD)似乎是无法获取目录/文件夹元数据的合理解释吗?

  • 非常重要的是,是否有任何通用的压缩实用程序可以在没有中央目录的情况下生成 .zip 文件? 7zip 和 Windows zip(内置于资源管理器中)可以制作 CD。

zip metadata 7zip
1个回答
0
投票

zip 文件不需要包含子目录的条目。它可以简单地将文件及其路径作为条目。然后,子目录结构由文件的路径隐含,并在提取时相应地创建这些子目录。

如果需要,zip 文件可以包含子目录条目。这些条目将包括这些子目录的属性。此类条目由带有尾部斜杠的路径名来标识,并且它们的长度为零。

只需列出内容,您就可以知道您的 zip 文件是使用哪一个构建的。

© www.soinside.com 2019 - 2024. All rights reserved.