我之前一直在使用Chilkat Zip .Net从我的应用程序中生成备份文件,但是由于该组件出现问题,我改用Xceed Zip .Net执行同样的功能。
如果您尝试使用Xceed、7Zip或WinZip打开由Chilkat生成的Zip文件,则会失败。
如果您使用Chilkat、Windows Zip或WinRar打开相同的文件,则可以成功提取文件。
在维基百科上查看WinZip格式后,我研究了中央目录和本地文件头,发现Chilkat组件错误地将中央目录记录文件大小写入。如果您使用类似FRHed的工具编辑中央记录并使文件大小与本地头大小相同,则一切都会正确提取。
您会建议我做什么?
- 使用Chilkat库编写一个小型实用程序,提取Zip文件,然后使用Xceed库重新压缩。
- 查找必要的Zip标记(如规范定义),然后纠正中央目录。
- 其他组合。