ICSharpCode.SharpZipLib.dll 是一个基于GNU的免费库文件,他的功能很强大。下载地址:http://www.icsharpcode.net/OpenSource/SharpZipLib/Download.aspx下面是对#ZipLib进行.net下的解压缩的方法的介绍。1.BZip2加入ICSharpCode.SharpZipLib.dll的引用,在#Develop的安装目录下的\SharpDevelop\bin目录下。然后在程序中使用using语句把BZip2 类库包含进来。 压缩:使用BZip2的静态方法Compress。它的第一个参数是所要压缩的文件所代表的输入流,可以使用System.IO.File的静态方法OpenRead。第二个参数是要建立的压缩文件所代表的输出流,可以使用System.IO.File的静态方法Create创建,压缩文件名是所要压缩文件的文件名  加上压缩后缀.bz(同样你也可以取其他的文件名)。第三个参数是要压缩的块大小(一般为2048的整数)。解压:使用BZip2的静态方法Decompress。 它的第一个参数是所要解压的压缩文件所代表的输入流,可以使用System.IO.File的静态方法OpenRead。第二个参数是要建立的解压文件所代表的输出流,可以使用System.IO.File的静态方法Create创建,因为解压文件的文件名是去掉了压缩文件扩展名的压缩文件名(你也可以做成解压文件与压缩文件不同名的)。编译你的程序,然后在命令行方式下输入bzip2   文件名(假设建立的C#文件是bzip2,就可以生成压缩文件;输入bzip2   -d   文件名,就会解压出文件来(-d是用来表示解压,你也可以使用其他的符号)。呵呵,原来做压缩可以这么简单的,压缩效果也可以啊。     
  using   System;     
  using   System.IO;     
  using   ICSharpCode.SharpZipLib.BZip2;     
    
  class   MainClass     
  {     
        public   static   void   Main(string[]   args)     
        {     
              if   (args[0]   ==   "-d")   {   //   解压     
                    BZip2.Decompress(File.OpenRead(args[1]),   File.Create(Path.GetFileNameWithoutExtension(args[1])));     
              }   else   {   //压缩     
                    BZip2.Compress(File.OpenRead(args[0]),   File.Create(args[0]   +   ".bz"),   4096);     
              }     
        }     
  } 2.GZip 
        加入ICSharpCode.SharpZipLib.dll的引用,在#Develop的安装目录下的\SharpDevelop\bin目录下。然后在程序中使用using语句把GZip类库包含进来。由于GZip没有BZip2的简单解压缩方法,因此只能使用流方法来进行解压缩。具体的方法见程序的说明。编译程序,然后在命令行方式下输入GZip   文件名(假设建立的C#文件是GZip,就可以生成压缩文件;输入GZip   -d   文件名,就会解压出文 件来(-d是用来表示解压,你也可以使用其他的符号)。       using   System;     
using   System.IO;     using   ICSharpCode.SharpZipLib.GZip;     
    
class   MainClass     
  {     
        public   static   void   Main(string[]   args)     
        网上提供的大概就是上面的东西了,问题一:说的那流这流的不太懂,我只想知道,我用FileUpload1上传压缩包到指定地点,然后我会获得压缩文件所在位子,这个路径放到什么地方来解压
例如:
//file fl = new file();
//string FileAllPath = fl.path() + Session["Name"].ToString();//压缩文件的地址
FileAllPath放到哪,我也就需要这一个参数不就可以解压了嘛?其他的都是干什么用的啊?谁做过帮忙解释一下,我英语不好看不懂官方的文档,谢谢各位朋友了

解决方案 »

  1.   

    File1.PostedFile.SaveAs(strPath);
    string []FileProperties=new string[2];
    FileProperties[0]=strPath; //待解压的文件
    FileProperties[1]=strPhotoPath+@"\";//解压后放置的目标目录
    UnZip(FileProperties);
    public void UnZip(string[] args)
    {
    ZipInputStream s = new ZipInputStream(File.OpenRead(args[0]));
      
    ZipEntry theEntry;// = s.GetNextEntry();
    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();
    }