日期:2014-05-17  浏览次数:21492 次

用ICSharpCode.SharpZipLib的ZipInputStream解压文件报错
我的解压语句如下:

                 FileStream fs = new FileStream(filepath, FileMode.Create);
                 byte[] buffer = new byte[1024];
                 int size = InpStream.Read(buffer, 0, buffer.Length);
                 while (size > 0)
                 {
                      fs.Write(buffer, 0, size);
                      size = InpStream.Read(buffer, 0, buffer.Length);
                 }

我拿断点跟,到int size...这句话时,size被赋值395,然后进入while循环,写入fs流还没有问题,但再一次读InpStream时就会报错,如下:


我想问下这是怎么回事。谢谢~

------解决方案--------------------
下最新版
http://www.icsharpcode.net/OpenSource/SharpZipLib/Download.aspx
  
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/
------解决方案--------------------
    #region 解压
        /// <summary>  
        /// 功能:解压zip格式的文件。  
        /// </summary>  
        /// <param name="zipFilePath">压缩文件路径,全路径格式</param>  
        /// <param name="unZipDir">解压文件存放路径,全路径格式,为空时默认与压缩文件同一级目录下,跟压缩文件同名的文件夹</param>  
        /// <param name="err">出错信息</param>  
        /// <returns>解压是否成功</returns>  
        public static bool UnZip(string zipFilePath, string unZipDir, int maximum, SetProgressDelegate setProgressDelegate)
        {
            if (zipFilePath == string.Empty)
            {
                throw new  DateTime.Now.ToString("yyyy/MM/dd")的有关问题