zoukankan      html  css  js  c++  java
  • zip格式压缩文件辅助类(ZipHelper)

      /// <summary>
        /// 压缩解压文件
        /// </summary>
        public class ZipHelper
        { /// <summary>
          /// 使用GZIP压缩文件的方法
          /// </summary>
          /// <param name="sourcefilename"></param>
          /// <param name="zipfilename"></param>
          /// <returns></returns>
            public static bool GZipFile(string sourcefilename, string zipfilename)
            {
                bool blResult;//表示压缩是否成功的返回结果
                              //为源文件创建读取文件的流实例
                var srcFile = File.OpenRead(sourcefilename);
                //为压缩文件创建写入文件的流实例,
                var zipFile = new GZipOutputStream(File.Open(zipfilename, FileMode.Create));
                try
                {
                    byte[] FileData = new byte[srcFile.Length];//创建缓冲数据
                    srcFile.Read(FileData, 0, (int)srcFile.Length);//读取源文件
                    zipFile.Write(FileData, 0, FileData.Length);//写入压缩文件
    
                    blResult = true;
                }
                catch (Exception ee)
                {
                    Console.WriteLine(ee.Message);
                    blResult = false;
                }
                srcFile.Close();//关闭源文件
                zipFile.Close();//关闭压缩文件
                return blResult;
            }
            /// <summary>
            /// /使用GZIP解压文件的方法
            /// </summary>
            /// <param name="zipfilename"></param>
            /// <param name="unzipfilename"></param>
            /// <returns></returns>
            public static bool UnGzipFile(string zipfilename, string unzipfilename)
            {
                bool blResult;//表示解压是否成功的返回结果
                //创建压缩文件的输入流实例
                var zipFile = new GZipInputStream(File.OpenRead(zipfilename));
                //创建目标文件的流
                var destFile = File.Open(unzipfilename, FileMode.Create);
                try
                {
                    int buffersize = 2048;//缓冲区的尺寸,一般是2048的倍数
                    byte[] FileData = new byte[buffersize];//创建缓冲数据
                    while (buffersize > 0)//一直读取到文件末尾
                    {
                        buffersize = zipFile.Read(FileData, 0, buffersize);//读取压缩文件数据
                        destFile.Write(FileData, 0, buffersize);//写入目标文件
                    }
                    blResult = true;
                }
                catch (Exception ee)
                {
                    Console.WriteLine(ee.Message);
                    blResult = false;
                }
                destFile.Close();//关闭目标文件
                zipFile.Close();//关闭压缩文件
                return blResult;
            }
        }
  • 相关阅读:
    推荐19个很有用的 JavaScript 库
    李开复:我对年轻人是分享经验 不是要当导师
    DotNET企业架构应用实践数据库表记录的唯一性设计的设计兼议主键设定原则
    cookies,session,viewstate浅析
    不是HR,Leader你到底需要招什么样的程序员(变形金刚?超人?可能吗!)
    IBatis.Net学习笔记系列文章
    学习mvc的一些资料
    数据库日常维护常用的脚本部分收录
    设定Grid行的颜色
    被WSS3.0耍了一把
  • 原文地址:https://www.cnblogs.com/siyunianhua/p/10821733.html
Copyright © 2011-2022 走看看