gpt4 book ai didi

.net - 更正损坏的 ZIP 文件头

转载 作者:行者123 更新时间:2023-12-02 17:09:50 25 4
gpt4 key购买 nike

我之前一直使用 Chilkat Zip .Net 从我的应用程序生成备份文件,但在组件出现问题后,转而使用 Xceed Zip .Net 来实现相同的功能。

如果您使用 Chilkat 生成的 Zip 之一并尝试使用 Xceed、7Zip、WinZip 进行解压,则会失败。

如果您使用 Chilkat、Windows Zip、WinRar 提取同一个文件并进行解压,则文件可以正常解压。

在维基百科上阅读有关 WinZip 格式的信息后,我调查了中央目录和本地文件 header ,发现 Chilkat 组件错误地写入了中央目录记录文件大小。如果您使用 FRHed 之类的工具来编辑中央记录并使文件大小与本地 header 大小相同,则所有内容都会正确提取。

你建议我做什么?

  1. 使用 Chilkat 库编写一个小实用程序来提取 Zip,然后使用 Xceed 库重新压缩
  2. 读取 Zip 文件,查找必要的 Zip 标记(如规范中所定义),然后更正中央标题。
  3. 其他一些组合。

最佳答案

这取决于您的程序生成的备份数量。也许,从程序或手动解压缩/重新压缩它们会更容易。但是,如果有很多文件,更好的方法是修复中央目录记录字段 - 您应该编写代码,这1) 搜索中心目录;2) 对于每条记录,转到本地文件头存储的位置,并读取文件大小;3)返回中央目录并在那里写入有效的文件大小;4) 当心大文件,如果它们是 - 文件大小 >4Gb 会写入扩展名。

关于.net - 更正损坏的 ZIP 文件头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3490025/

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