我刚用ICSharpCode.SharpZipLib.Zip解压缩文件,压缩文件可以了,可是解压出来的文件是0字节的,不知是什么原因?

解决方案 »

  1.   

    怎么解压的
    string []FileProperties=new string[2];  
    FileProperties[0]=strPath; //待解压的文件  
    FileProperties[1]=strPath+@"\";//解压后放置的目标目录  
    UnZip(FileProperties);  
    public void UnZip(string[] args)  
    {  
    ZipInputStream s = new ZipInputStream(File.OpenRead(args[0]));  
       
    ZipEntry theEntry;
    while ((theEntry = s.GetNextEntry()) != null)  
    {  
    string directoryName = Path.GetDirectoryName(args[1]);  
    string fileName = Path.GetFileName(theEntry.Name);  
    Directory.CreateDirectory(directoryName);  
    if (fileName != String.Empty)  
    {   
    //解压文件到指定的目录  
    FileStream streamWriter = File.Create(args[1]+theEntry.Name);  
    int size = 2048;  
    byte[] data = new byte[2048];  
    while (true)  
    {  
    size = s.Read(data, 0, data.Length);  
    if (size > 0)  
    {  
    streamWriter.Write(data, 0, size);  
    }  
    else  
    {  
    break;  
    }  
    }  
    streamWriter.Close();  
    }  
    }  
    s.Close();  
    }  
      

  2.   

    就是老是提示length is zero,错误参数seed
      

  3.   

    如下是原代码
    public static void UnCompressToFile(string srcFileName, string destFileName)
            {
                try
                {
                    ZipInputStream s = new ZipInputStream(File.OpenRead(srcFileName));
                    s.Password = "123456";
                    ZipEntry theEntry = s.GetNextEntry();                FileStream fs = new FileStream(destFileName, FileMode.Create, FileAccess.Write);
                    byte[] data = new byte[s.Length];
                    while (true)
                    {
                        int size = s.Read(data, 0, data.Length);                    if (size > 0)
                        {
                            fs.Write(data, 0, size);
                        }
                        else
                        {
                            break;
                        }
                    }                s.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("错误: " + ex.Message);
                }
            }