我有包含巨大文件的大型 zip 文件。 zip 存档中有一些需要修改的“元数据”文本文件。但是,无法提取整个 zip 并重新压缩它。我需要在 zip 中找到目标文本文件,对其进行编辑,并可能将更改附加到 zip 文件中。文本文件的文件名始终相同,因此可以进行硬编码。这可能吗?有没有更好的办法?
有两种方法。首先,如果您只是想避免重新压缩整个 zip 文件,则可以使用任何现有的 zip 实用程序来更新存档中的单个文件。这将需要有效地复制整个存档并使用替换的条目创建一个新存档,然后删除旧的 zip 文件。这不会重新压缩未被替换的数据,因此应该相对较快。至少,复制 zip 存档所需的时间大约相同。
如果您想避免复制整个 zip 文件,则可以通过将 zip 文件中的本地和中央标头中的名称(保持名称长度相同)更改为您赢得的名称来有效删除要替换的条目否则不要使用,这表明该文件应该被忽略。例如。用波形符替换名称的第一个字符。然后您可以使用更新的文本文件附加一个新条目。这需要重写 zip 文件末尾的中心目录,该目录非常小。
(另一个答案中建议不要引用中央目录中不需要的条目不一定有效,具体取决于用于读取 zip 文件的实用程序。某些实用程序将读取 zip 文件条目信息的本地标头,并忽略中央目录。其他实用程序将执行相反的操作。因此本地和中央条目信息应保持同步。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)