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 "解压成功";
        }

 

 

posted @ 2009-03-19 20:29  xjy  阅读(376)  评论(0编辑  收藏  举报