2010-06-15 27 views
1

在Delphi中压缩有很多问题,无论如何,这不是重复的。使用ZLib单元压缩文件vs使用ZipForge

我在我的应用程序中使用了ZipForge来提供zip/unzip功能。

目前我使用ZipForge的2个特点:

1)压缩和解压缩()

2)密码保护档案

现在我从所有的档案,以便消除密码我!只需要压缩和解压缩文件。我压缩它们只是为了最大限度地减少从服务器上传/下载文件时的带宽。所以我的想法是处理所有文件一次,以解压缩它们(使用密码)并重新压缩它们而不使用密码。

我对ZipForge没有任何反应,无论如何它是一个额外的组件,每次升级到最新的Delphi版本时,我都必须等待新的IDE支持,而且组件越多,安装过程中出现的问题越多(我不'不要提及成本,因为它非常低,用一些其他东西代替组件会花费时间,所以这不是成本问题)。

所以,因为我做的非常简单,我想用ZLib单元来替换ZipForge和2个简单的函数。 我发现(和测试)的功能here on Torry's

您对使用Zlib单元有什么看法?你有没有看到ZipForge没有的潜在问题?你能评论速度吗?

回答

7

那么,开箱即用的ZLib不是ZIP格式,如果您需要创建应由第三方软件解压缩的ZIP文件,则必须为ZIP文件编写额外的代码。如果您使用自己的代码执行压缩和解压缩,则可以使用ZLib。但是,您仍然会通过创建您自己的传递文件名等常规来重新发明轮子。而且您仍然需要使用第三方库。

+0

好吧,事实上,当你告诉我这一点后,我意识到我无法使用windows zip引擎或7-zip打开我使用zlib压缩的文件。因此,我还应该发布一个“紧急工具”来恢复压缩文件“你知道哪些文件扩展名shuold我给zlib压缩的文件,以便它们可以不使用7-zip吗? – LaBracca 2010-06-15 09:14:10

+2

没有,恐怕。ZLib它不会产生“文件”,它只是压缩数据流,而是你将这些流打包成某些格式,以后可以用第三方应用程序打开。据我所知,GZIP格式是一个头+ ZLib流,所以你可以检查它的规格。 – 2010-06-15 11:36:53