zoukankan      html  css  js  c++  java
  • Asp.Net2.0使用SharpZipLib

      /// <summary>
            /// 解压功能(解压压缩文件到指定目录)
            /// </summary>
            public static string Unzip(string srcFile, string destDir) //srcFile是指要解压的文件名,destDir是指目标目录.
            {
                if (!File.Exists(srcFile))
                {
                    return "找不到文件" ;
                }
                if (!destDir.EndsWith("\\")) destDir += "\\"; //规范目录格式

                ZipInputStream zipIn = new ZipInputStream(File.OpenRead(srcFile)); //定义新的ZipInputStream类
                ZipEntry entry; //定义输入压缩文件中的文件
                Directory.CreateDirectory(destDir); //创建目标目录
                while ((entry = zipIn.GetNextEntry()) != null) //判断是否解压完毕了
                {
                    string fileName = entry.Name.Replace("/", "\\"); //规范文件名
                    if (fileName.EndsWith("\\")) Directory.CreateDirectory(destDir + fileName); //判断是目录还是文件
                    else if (fileName != String.Empty) //如果是文件且文件名不为空,则解压
                    {
                        FileStream streamWriter = File.Create(destDir + fileName); //定义一个FileStream
                        int size; //用于判断单个文件是否解压完毕
                        byte[] data = new byte[2048]; //定义缓冲区大小
                        try
                        {
                            while (true)
                            {
                                size = zipIn.Read(data, 0, data.Length); //获得这次读取的信息的长度
                                if (size > 0) streamWriter.Write(data, 0, size); //如果size>0,表示有信息
                                else break; //如果size==0,表示文件已经读取完毕
                            }
                        }
                        catch
                        {}
                        streamWriter.Close(); //关闭streamWriter
                    }
                }
                zipIn.Close(); //关闭zipIn
                return "解压成功";
            }

  • 相关阅读:
    计算机网络-数据结构-MAC帧头-IP头-TCP头-UDP头
    (考研)java网络编程
    多态(重点:方法的多态性和对象的多态性)
    JZOJ1497 景点中心 题解
    JZOJ1227 Coprime 题解
    JZOJ3966 Sabotage 题解
    JZOJ3056 数字 题解
    JZOJ3054 祖孙询问 题解
    【Luogu P2282】【JZOJ 4906】【NOIP2016提高组复赛】组合数问题 题解
    JZOJ4316【NOIP2015模拟11.5】Isfind 题解
  • 原文地址:https://www.cnblogs.com/xjyggd/p/1417094.html
Copyright © 2011-2022 走看看