我应该在SharpZipLib中选择哪种压缩类型?

时间:2012-04-21 23:05:29

标签: c# compression file-transfer sharpziplib

我有一个发送文件和文件夹的文件传输应用程序。 (服务器 - 客户端)
我试图通过TCP(套接字)发送数据,我已经为传输数据的方式做了一些规则,所以如果它发送一个包含许多文件的大文件夹,它应该首先将它们压缩成一个zip文件然后当发送的zip文件,接收器必须解压缩它。 所以我决定使用 SharpZibLib ,我对此有疑问。

  • 我应该为我的应用选择哪种类型的压缩? 我读到了ZIP和GZIP之间的差异,发现GZIP有更好的压缩来减小尺寸,而且我以后不需要从GZIP文件中提取特殊文件,所以不需要使用ZIP而不是GZIP!
    但是在那个库中有很多类型我还不知道,所以我应该使用GZIP还是其他类型对我的应用程序更好?

    enter image description here

    P.S: 首先是时间优先,使用SharpZipLib的目的是将(太多文件)放在一个文件中,这样发送的速度比逐个发送(太多文件)要快得多。
    more details here

  • 1 个答案:

    答案 0 :(得分:1)

    速度方面,你应该使用gzip / zip。我假设库允许您选择压缩级别。您应该尝试低水平,例如1至4,了解压缩速度和压缩程度最适合您的应用。

    在相同的压缩效率下,gzip / zip的速度将超过LZW。我发现压缩等级3比LZW快,并且压缩得更好。

    bzip2压缩比gzip / zip更好,但需要更长时间。

    其他选择不是压缩器。