• 使用SharpZip压缩与解压缩


    使用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

  • 相关阅读:
    react树节点异步加载和拖拽生成节点
    基于hook的ant design 的tab页的删除功能实现
    dva在hook里effect异步获取数据不同步问题
    SpringBoot整合Rredis
    SpringBoot实现Session共享
    SpringBoot整合Mybatis
    SpringBoot整合JPA多数据源
    SpringData关键字查询方法和自定义查询方法
    SpringBoot整合Mybatis多数据源
    jdbctemplate配置多数据源
  • 原文地址:https://www.cnblogs.com/bribe/p/4428679.html
Copyright © 2020-2023  润新知