引用SharpZipLib.dll//自己搜一下,网上有。
自己些个类UnZipClass
using ICSharpCode.SharpZipLib.BZip2;
using ICSharpCode.SharpZipLib.Zip;
using ICSharpCode.SharpZipLib.Zip.Compression;
using ICSharpCode.SharpZipLib.Zip.Compression.Streams;
using ICSharpCode.SharpZipLib.GZip;
namespace MyWinzip
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
public class UnZipClass
{
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) 
{   
//解压文件到指定的目录
string path=args[1]+"\\"+theEntry.Name;
FileStream streamWriter = File.Create(path);
    
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();
}
}
}
//--------------
private void button1_Click(object sender, System.EventArgs e)
{
this.openFileDialog1.ShowDialog();
            string filename=this.openFileDialog1.FileName;//待解压的文件
int i=filename.LastIndexOf(".");
string filepath=filename.Substring(0,i)+"\\";//解压后放置的目标目录 string []FileProperties=new string[2];
FileProperties[0]=filename;
FileProperties[1]=filepath;
UnZipClass UnZc=new UnZipClass();
UnZc.UnZip(FileProperties); }