使用SharpZip压缩与解压缩
编写人:左丘文
2015-4-11
大家在做项目时,相信会经常性的会遇到要对数据流或dataset byte[] 或文件进行压缩和解压缩,比如:利用webservice进行数据的更新与下载,如果在文件过大,如果不压缩相信肯定是传输入失败,今天在这里,我想与大家一起分享一下利用国外一开源的sharpzip类作为解压缩类来操作解压缩代码,在此做个小结,以供参考。有兴趣的同学,可以一同探讨与学习一下,否则就略过吧。
1、 之前做过一项目,该项目中有一个要与总部同步数据功能,客户端是通过internet与总部进行通讯,数据的传递,我们利用的是webservice,传递的数据是dataset,刚开始我是直接将dataset当作参数,直接传递,数据小的时候,没什么问题,但数据一大,就基本上是失败的。这时候,我们就必须用到了压缩了,我们在传输前先对其进行压缩,服务器接收后,再进行解压,更新到服务器数据库中。
2、 我们可以在 http://www.icsharpcode.net/OpenSource/SharpZipLib/Default.aspx 下载源码。
以下是我下载后的webservice的整体框架图:
3、 Sharpzip完整代码:
View Code
1) 我们这里参数前面部分是以object的形式输入,返回为byte[],并且这些都是成队使用。
2) 后面部分可以直接将byte[]作为参数输入,并压缩后返回byte[],当然这里也是压缩与解压都是成对使用。
4、 Sharpzip基类的功能,其实主要用于对文件的压缩,以下是对文件压缩的操作代码:
1) 对文件的操作,以下代码转自,大家可以详细看看。
http://blog.itpub.net/12639172/viewspace-553427/
View Code
2) 另外也有一个写得相当不错,大家可以参考一下(并且有源码下载) http://www.xocoder.com/archives/1050
5、 有关更多的技术分享,大家可以加入我们的技术群,进行源码的分享。
欢迎加入技术分享群:238916811