ZIP压缩文件注释

5

目前我正在开发一个极简主义的ZIP 2.0库。

遵循“读他妈的手册!”的座右铭,我阅读了PKWARE的appnote,所以我知道仅包含“中央目录记录结束”(end of central directory record)的ZIP存档被认为是空的。该记录在末尾定义了一个可变大小的“存档注释”,因此当加载中央目录时必须向后扫描以寻找签名“PK\5\6”。这让我有两个问题:

1)当用户尝试添加包含此序列的存档注释时,我该怎么做?

2)一个空存档是否允许有注释?(WinRAR无法在存档为空时显示它,而7-Zip可以)

更新:

我已与WinRAR的首席开发人员Roshal先生通过电子邮件联系。他确认2)是WinRAR中的一个错误,现已修复。

1个回答

0

ZIP文件格式并没有规定文件注释或ZIP文件注释的内容应该是什么。在某些地方,他们的文档将注释描述为“文本信息”,但在其他地方,注释被描述为“数据字节”,而且appnote本身并没有说明注释中可以放什么。

然而,即使规范允许在注释中使用任意二进制数据,这也不意味着您必须在您的库中允许它,并且如果您选择允许它,这也不意味着您必须让它变得容易。

因此,这里列出了处理注释的可能方法列表。请选择一种。

  1. 拒绝在注释中允许二进制数据。
  2. 允许二进制数据,但拒绝允许特定的签名。
  3. 允许任意二进制数据,但要求用户提供某种额外的确认,如果他们尝试包含签名。
  4. 允许任意二进制数据,不用担心签名。

当然,对于任何可以嵌入签名的选项,文档都应该警告用户这样做会导致无效的ZIP文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接