我有一个文件传输应用程序,可以发送文件和文件夹(服务器-客户端)。
我正在尝试通过TCP(套接字)发送数据,我已经为数据传输制定了一些规则,因此如果发送的是包含多个文件的大文件夹,则应该首先将它们压缩成一个单独的zip文件,然后在发送该zip文件时,接收方必须对其进行解压缩。
因此,我决定使用SharpZibLib,但我有一个问题。我应该选择哪种类型的压缩方式来适用于我的应用程序?
我了解了ZIP和GZIP之间的区别,并发现GZIP具有更好的压缩能力以减小文件大小,而且我不需要从GZIP文件中提取特定文件,所以无需使用ZIP!
但在该库中,还有许多我仍不知道的类型,那么我应该使用GZIP还是其他类型更适合我的应用程序?
我正在尝试通过TCP(套接字)发送数据,我已经为数据传输制定了一些规则,因此如果发送的是包含多个文件的大文件夹,则应该首先将它们压缩成一个单独的zip文件,然后在发送该zip文件时,接收方必须对其进行解压缩。
因此,我决定使用SharpZibLib,但我有一个问题。
我了解了ZIP和GZIP之间的区别,并发现GZIP具有更好的压缩能力以减小文件大小,而且我不需要从GZIP文件中提取特定文件,所以无需使用ZIP!
但在该库中,还有许多我仍不知道的类型,那么我应该使用GZIP还是其他类型更适合我的应用程序?
附言:
首要考虑的是时间,使用SharpZipLib的目的是将(太多的文件)压缩到一个文件中,这样发送会比单独发送(太多的文件)要快得多。
更多细节在这里。
SharpZipLib
。不过你提出的问题非常详细,让人印象深刻。我的建议是编写一个快速测试应用程序,使用各种压缩算法来压缩相同的数据,并与您的特定数据比较速度,然后您就可以选择最适合您所做的工作的压缩算法了。 - Ken WhiteSystem.IO.Compression
中的GZip压缩很好,而且速度快。它在.NET 4.0中得到了大大改进。 - Jim Mischel