ZLib解压包含多个文件的ZIP

6
我正在使用 Delphi 7,需要解压缩一个包含多个文件的压缩 zip 文件。我已经找到了使用 ZLib 解压缩单个文件的示例,但是找不到任何有关在 zip 中处理多个文件的示例。请问是否有人可以给我一个示例或指向一个方向?
谢谢
Colin

2
ZLib <> ZipZLib 是一个通用的数据压缩库,而 Zip 是一个压缩和文件格式库。仅仅因为它们都以 Z 开头并不意味着它们是兼容的。 :) 如果要处理 Zip 文件,请使用 Zip 库,例如 Abbrevia(由 @ErikKnowles 在下面提到)。如果想使用 ZLib,无论如何都必须找到一个将其与 Zip 兼容 文件 I/O 包装起来的库,因为 ZLibZip 头和多个文件一无所知。 - Ken White
2个回答

13

如果您在使用zlib时遇到问题,也许您可以考虑TurboPower's Abbrevia(在SourceForge上可用)。使用Abbrevia,以下是我们的多文件提取代码:

zip.ArchiveType := atZip ;
zip.ForceType := true ;
zip.OpenArchive({...your .zip archive name});

zip.BaseDirectory :=  {...your extract path...} ;
zip.OnConfirmOverwrite := Overwrite
zip.ExtractFiles('*');

有一些选项可以处理提取失败、确认覆盖等问题。使用这个库非常方便,而且是免费的。


2

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