1.建立工程,添加引用,添加SharpZipLib.dll
2.建立压缩和解压类CompressionFile.cs
添加如下代码
  using System;
using System;
 using System.IO;
using System.IO;
 using ICSharpCode.SharpZipLib.Zip;
using ICSharpCode.SharpZipLib.Zip;
 using ICSharpCode.SharpZipLib.GZip;
using ICSharpCode.SharpZipLib.GZip;
 using ICSharpCode.SharpZipLib.BZip2;
using ICSharpCode.SharpZipLib.BZip2;
 using ICSharpCode.SharpZipLib.Checksums;
using ICSharpCode.SharpZipLib.Checksums;
 using ICSharpCode.SharpZipLib.Zip.Compression;
using ICSharpCode.SharpZipLib.Zip.Compression;
 using ICSharpCode.SharpZipLib.Zip.Compression.Streams;
using ICSharpCode.SharpZipLib.Zip.Compression.Streams;

 namespace WebApplication3
namespace WebApplication3
 {
{
 #region ZipClass 压缩文件
    #region ZipClass 压缩文件
 public class ZipClass
    public class ZipClass
 {
    {
 public void ZipFile(string FileToZip, string ZipedFile ,int CompressionLevel, int BlockSize,string password)
        public void ZipFile(string FileToZip, string ZipedFile ,int CompressionLevel, int BlockSize,string password)
 {
        {
 //如果文件没有找到,则报错
            //如果文件没有找到,则报错
 if (! System.IO.File.Exists(FileToZip))
            if (! System.IO.File.Exists(FileToZip)) 
 {
            {
 throw new System.IO.FileNotFoundException("The specified file " + FileToZip + " could not be found. Zipping aborderd");
                throw new System.IO.FileNotFoundException("The specified file " + FileToZip + " could not be found. Zipping aborderd");
 }
            }
 
  
 System.IO.FileStream StreamToZip = new System.IO.FileStream(FileToZip,System.IO.FileMode.Open , System.IO.FileAccess.Read);
            System.IO.FileStream StreamToZip = new System.IO.FileStream(FileToZip,System.IO.FileMode.Open , System.IO.FileAccess.Read);
 System.IO.FileStream ZipFile = System.IO.File.Create(ZipedFile);
            System.IO.FileStream ZipFile = System.IO.File.Create(ZipedFile);
 ZipOutputStream ZipStream = new ZipOutputStream(ZipFile);
            ZipOutputStream ZipStream = new ZipOutputStream(ZipFile);
 ZipEntry ZipEntry = new ZipEntry("ZippedFile");
            ZipEntry ZipEntry = new ZipEntry("ZippedFile");
 ZipStream.PutNextEntry(ZipEntry);
            ZipStream.PutNextEntry(ZipEntry);
 ZipStream.SetLevel(CompressionLevel);
            ZipStream.SetLevel(CompressionLevel);
 byte[] buffer = new byte[BlockSize];
            byte[] buffer = new byte[BlockSize];
 System.Int32 size =StreamToZip.Read(buffer,0,buffer.Length);
            System.Int32 size =StreamToZip.Read(buffer,0,buffer.Length);
 ZipStream.Write(buffer,0,size);
            ZipStream.Write(buffer,0,size);
 try
            try 
 {
            {
 while (size < StreamToZip.Length)
                while (size < StreamToZip.Length) 
 {
                {
 int sizeRead =StreamToZip.Read(buffer,0,buffer.Length);
                    int sizeRead =StreamToZip.Read(buffer,0,buffer.Length);
 ZipStream.Write(buffer,0,sizeRead);
                    ZipStream.Write(buffer,0,sizeRead);
 size += sizeRead;
                    size += sizeRead;
 }
                }
 }
            } 
 catch(System.Exception ex)
            catch(System.Exception ex)
 {
            {
 throw ex;
                throw ex;
 }
            }
 ZipStream.Finish();
            ZipStream.Finish();
 ZipStream.Close();
            ZipStream.Close();
 StreamToZip.Close();
            StreamToZip.Close();
 }
        }
 
 
 public void ZipFileMain(string[] args)
        public void ZipFileMain(string[] args)
 {
        {
 //string[] filenames = Directory.GetFiles(args[0]);
            //string[] filenames = Directory.GetFiles(args[0]);
 string[] filenames = new string[]{args[0]};
            string[] filenames = new string[]{args[0]};
 
  
 Crc32 crc = new Crc32();
            Crc32 crc = new Crc32();
 ZipOutputStream s = new ZipOutputStream(File.Create(args[1]));
            ZipOutputStream s = new ZipOutputStream(File.Create(args[1]));
 
  
 s.SetLevel(6); // 0 - store only to 9 - means best compression
            s.SetLevel(6); // 0 - store only to 9 - means best compression
 
  
 foreach (string file in filenames)
            foreach (string file in filenames) 
 {
            {
 //打开压缩文件
                //打开压缩文件
 FileStream fs = File.OpenRead(file);
                FileStream fs = File.OpenRead(file);
 
   
 byte[] buffer = new byte[fs.Length];
                byte[] buffer = new byte[fs.Length];
 fs.Read(buffer, 0, buffer.Length);
                fs.Read(buffer, 0, buffer.Length);
 ZipEntry entry = new ZipEntry(file);
                ZipEntry entry = new ZipEntry(file);
 
   
 entry.DateTime = DateTime.Now;
                entry.DateTime = DateTime.Now;
 
   
 // set Size and the crc, because the information
                // set Size and the crc, because the information
 // about the size and crc should be stored in the header
                // about the size and crc should be stored in the header
 // if it is not set it is automatically written in the footer.
                // if it is not set it is automatically written in the footer.
 // (in this case size == crc == -1 in the header)
                // (in this case size == crc == -1 in the header)
 // Some ZIP programs have problems with zip files that don't store
                // Some ZIP programs have problems with zip files that don't store
 // the size and crc in the header.
                // the size and crc in the header.
 entry.Size = fs.Length;
                entry.Size = fs.Length;
 fs.Close();
                fs.Close();
 
   
 crc.Reset();
                crc.Reset();
 crc.Update(buffer);
                crc.Update(buffer);
 
   
 entry.Crc  = crc.Value;
                entry.Crc  = crc.Value;
 
   
 s.PutNextEntry(entry);
                s.PutNextEntry(entry);
 
   
 s.Write(buffer, 0, buffer.Length);
                s.Write(buffer, 0, buffer.Length);
 
   
 }
            }  
 s.Finish();
            s.Finish();
 s.Close();
            s.Close();
 }
        }
 }
    }
 #endregion
    #endregion

 #region UnZipClass 解压文件
    #region UnZipClass 解压文件
 public class UnZipClass
    public class UnZipClass
 {
    {   
 /// <summary>
        /// <summary>
 /// 解压文件
        /// 解压文件
 /// </summary>
        /// </summary>
 /// <param name="args">包含要解压的文件名和要解压到的目录名数组</param>
        /// <param name="args">包含要解压的文件名和要解压到的目录名数组</param>
 public void UnZip(string[] args)
        public void UnZip(string[] args)
 {
        {
 ZipInputStream s = new ZipInputStream(File.OpenRead(args[0]));
            ZipInputStream s = new ZipInputStream(File.OpenRead(args[0]));
 try
            try
 {
            {                
 ZipEntry theEntry;
                ZipEntry theEntry;
 while ((theEntry = s.GetNextEntry()) != null)
                while ((theEntry = s.GetNextEntry()) != null) 
 {
                {   
 string directoryName = Path.GetDirectoryName(args[1]);
                    string directoryName = Path.GetDirectoryName(args[1]);
 string fileName      = Path.GetFileName(theEntry.Name);
                    string fileName      = Path.GetFileName(theEntry.Name);
 
   
 //生成解压目录
                    //生成解压目录
 Directory.CreateDirectory(directoryName);
                    Directory.CreateDirectory(directoryName);
 
   
 if (fileName != String.Empty)
                    if (fileName != String.Empty) 
 {
                    {   
 //解压文件到指定的目录
                        //解压文件到指定的目录
 FileStream streamWriter = File.Create(args[1]+fileName);
                        FileStream streamWriter = File.Create(args[1]+fileName);
 
    
 int size = 2048;
                        int size = 2048;
 byte[] data = new byte[2048];
                        byte[] data = new byte[2048];
 while (true)
                        while (true) 
 {
                        {
 size = s.Read(data, 0, data.Length);
                            size = s.Read(data, 0, data.Length);
 if (size > 0)
                            if (size > 0) 
 {
                            {
 streamWriter.Write(data, 0, size);
                                streamWriter.Write(data, 0, size);
 }
                            } 
 else
                            else 
 {
                            {
 break;
                                break;
 }
                            }
 }
                        }
 
    
 streamWriter.Close();
                        streamWriter.Close();
 }
                    }
 }
                }
 s.Close();
                s.Close();
 }
            }
 catch(Exception eu)
            catch(Exception eu)
 {
            {
 throw eu;
                throw eu;
 }
            }
 finally
            finally
 {
            {
 s.Close();
                s.Close();
 }
            }

 }//end UnZip
        }//end UnZip


 }//end UnZipClass
    }//end UnZipClass
 #endregion
    #endregion

 #region AttachmentUnZip
    #region AttachmentUnZip
 public class AttachmentUnZip
    public class AttachmentUnZip
 {
    {
 public AttachmentUnZip()
        public AttachmentUnZip()
 {
        {            
 }
        }
 public static void UpZip(string zipFile)
        public static void UpZip(string zipFile)
 {
        {
 string []FileProperties=new string[2];
            string []FileProperties=new string[2];

 FileProperties[0]=zipFile;//待解压的文件
            FileProperties[0]=zipFile;//待解压的文件

 FileProperties[1]=zipFile.Substring(0,zipFile.LastIndexOf("\\")+1);//解压后放置的目标目录
            FileProperties[1]=zipFile.Substring(0,zipFile.LastIndexOf("\\")+1);//解压后放置的目标目录

 UnZipClass UnZc=new UnZipClass();
            UnZipClass UnZc=new UnZipClass();

 UnZc.UnZip(FileProperties);
            UnZc.UnZip(FileProperties);
 }
        }

 }
    }
 #endregion
    #endregion
 } 3.建立测试页面
} 3.建立测试页面
3.1html
  <HTML>
<HTML>
 <HEAD>
    <HEAD>
 <title>WebForm1</title>
        <title>WebForm1</title>
 <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
        <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
 <meta name="CODE_LANGUAGE" Content="C#">
        <meta name="CODE_LANGUAGE" Content="C#">
 <meta name="vs_defaultClientScript" content="JavaScript">
        <meta name="vs_defaultClientScript" content="JavaScript">
 <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
 </HEAD>
    </HEAD>
 <body MS_POSITIONING="GridLayout">
    <body MS_POSITIONING="GridLayout">
 <form id="Form1" method="post" runat="server">
        <form id="Form1" method="post" runat="server">
 <asp:Button id="Button1" style="Z-INDEX: 101; LEFT: 56px; POSITION: absolute; TOP: 64px" runat="server"
            <asp:Button id="Button1" style="Z-INDEX: 101; LEFT: 56px; POSITION: absolute; TOP: 64px" runat="server"
 Text="压缩"></asp:Button>
                Text="压缩"></asp:Button>
 <asp:Button id="Button2" style="Z-INDEX: 102; LEFT: 112px; POSITION: absolute; TOP: 64px" runat="server"
            <asp:Button id="Button2" style="Z-INDEX: 102; LEFT: 112px; POSITION: absolute; TOP: 64px" runat="server"
 Text="解压"></asp:Button><INPUT id="File1" style="Z-INDEX: 103; LEFT: 32px; POSITION: absolute; TOP: 24px" type="file"
                Text="解压"></asp:Button><INPUT id="File1" style="Z-INDEX: 103; LEFT: 32px; POSITION: absolute; TOP: 24px" type="file"
 name="File1" runat="server">
                name="File1" runat="server">
 </form>
        </form>
 </body>
    </body>
 </HTML> 3.2 cs代码
</HTML> 3.2 cs代码
  public class WebForm1 : System.Web.UI.Page
public class WebForm1 : System.Web.UI.Page
 {
    {
 protected System.Web.UI.WebControls.Button Button1;
        protected System.Web.UI.WebControls.Button Button1;
 protected System.Web.UI.HtmlControls.HtmlInputFile File1;
        protected System.Web.UI.HtmlControls.HtmlInputFile File1;
 protected System.Web.UI.WebControls.Button Button2;
        protected System.Web.UI.WebControls.Button Button2;
 
    
 private void Page_Load(object sender, System.EventArgs e)
        private void Page_Load(object sender, System.EventArgs e)
 {
        {
 // Put user code to initialize the page here
            // Put user code to initialize the page here
 }
        }


 Web Form Designer generated code Web Form Designer generated code
        Web Form Designer generated code Web Form Designer generated code
 override protected void OnInit(EventArgs e)
        override protected void OnInit(EventArgs e)
 {
        {
 //
            //
 // CODEGEN: This call is required by the ASP.NET Web Form Designer.
            // CODEGEN: This call is required by the ASP.NET Web Form Designer.
 //
            //
 InitializeComponent();
            InitializeComponent();
 base.OnInit(e);
            base.OnInit(e);
 }
        }
 
        
 /// <summary>
        /// <summary>
 /// Required method for Designer support - do not modify
        /// Required method for Designer support - do not modify
 /// the contents of this method with the code editor.
        /// the contents of this method with the code editor.
 /// </summary>
        /// </summary>
 private void InitializeComponent()
        private void InitializeComponent()
 {
        {    
 this.Button1.Click += new System.EventHandler(this.Button1_Click);
            this.Button1.Click += new System.EventHandler(this.Button1_Click);
 this.Button2.Click += new System.EventHandler(this.Button2_Click);
            this.Button2.Click += new System.EventHandler(this.Button2_Click);
 this.Load += new System.EventHandler(this.Page_Load);
            this.Load += new System.EventHandler(this.Page_Load);

 }
        }
 #endregion
        #endregion

 #region 压缩
        #region 压缩
 private void Button1_Click(object sender, System.EventArgs e)
        private void Button1_Click(object sender, System.EventArgs e)
 {
        {
 string []FileProperties=new string[2];
            string []FileProperties=new string[2];            
 string fullName=this.File1.PostedFile.FileName;//C:\test\a.txt
            string fullName=this.File1.PostedFile.FileName;//C:\test\a.txt
 string destPath=System.IO.Path.GetDirectoryName(fullName);//C:\test
            string destPath=System.IO.Path.GetDirectoryName(fullName);//C:\test
 //待压缩文件
            //待压缩文件
 FileProperties[0]=fullName;
            FileProperties[0]=fullName;

 //压缩后的目标文件
            //压缩后的目标文件
 FileProperties[1]= destPath +"\\"+ System.IO.Path.GetFileNameWithoutExtension(fullName)+".zip";
            FileProperties[1]= destPath +"\\"+ System.IO.Path.GetFileNameWithoutExtension(fullName)+".zip";
 ZipClass Zc=new ZipClass();
            ZipClass Zc=new ZipClass();
 Zc.ZipFileMain(FileProperties);
            Zc.ZipFileMain(FileProperties);

 //删除压缩前的文件
            //删除压缩前的文件
 System.IO.File.Delete(fullName);
            System.IO.File.Delete(fullName);
 }
        }

 #endregion
        #endregion

 解压 解压
        解压 解压
 private void Button2_Click(object sender, System.EventArgs e)
        private void Button2_Click(object sender, System.EventArgs e)
 {
        {
 string fullName=this.File1.PostedFile.FileName;//C:\test\a.zip
            string fullName=this.File1.PostedFile.FileName;//C:\test\a.zip
 //解压文件
            //解压文件
 AttachmentUnZip.UpZip(fullName);
            AttachmentUnZip.UpZip(fullName);
 }
        }
 #endregion
        #endregion
 } 4.源代码下载/Files/singlepine/zipunzip.rar
    } 4.源代码下载/Files/singlepine/zipunzip.rar
2.建立压缩和解压类CompressionFile.cs
添加如下代码
 using System;
using System; using System.IO;
using System.IO; using ICSharpCode.SharpZipLib.Zip;
using ICSharpCode.SharpZipLib.Zip; using ICSharpCode.SharpZipLib.GZip;
using ICSharpCode.SharpZipLib.GZip; using ICSharpCode.SharpZipLib.BZip2;
using ICSharpCode.SharpZipLib.BZip2; using ICSharpCode.SharpZipLib.Checksums;
using ICSharpCode.SharpZipLib.Checksums; using ICSharpCode.SharpZipLib.Zip.Compression;
using ICSharpCode.SharpZipLib.Zip.Compression; using ICSharpCode.SharpZipLib.Zip.Compression.Streams;
using ICSharpCode.SharpZipLib.Zip.Compression.Streams;
 namespace WebApplication3
namespace WebApplication3 {
{ #region ZipClass 压缩文件
    #region ZipClass 压缩文件 public class ZipClass
    public class ZipClass {
    { public void ZipFile(string FileToZip, string ZipedFile ,int CompressionLevel, int BlockSize,string password)
        public void ZipFile(string FileToZip, string ZipedFile ,int CompressionLevel, int BlockSize,string password) {
        { //如果文件没有找到,则报错
            //如果文件没有找到,则报错 if (! System.IO.File.Exists(FileToZip))
            if (! System.IO.File.Exists(FileToZip))  {
            { throw new System.IO.FileNotFoundException("The specified file " + FileToZip + " could not be found. Zipping aborderd");
                throw new System.IO.FileNotFoundException("The specified file " + FileToZip + " could not be found. Zipping aborderd"); }
            } 
   System.IO.FileStream StreamToZip = new System.IO.FileStream(FileToZip,System.IO.FileMode.Open , System.IO.FileAccess.Read);
            System.IO.FileStream StreamToZip = new System.IO.FileStream(FileToZip,System.IO.FileMode.Open , System.IO.FileAccess.Read); System.IO.FileStream ZipFile = System.IO.File.Create(ZipedFile);
            System.IO.FileStream ZipFile = System.IO.File.Create(ZipedFile); ZipOutputStream ZipStream = new ZipOutputStream(ZipFile);
            ZipOutputStream ZipStream = new ZipOutputStream(ZipFile); ZipEntry ZipEntry = new ZipEntry("ZippedFile");
            ZipEntry ZipEntry = new ZipEntry("ZippedFile"); ZipStream.PutNextEntry(ZipEntry);
            ZipStream.PutNextEntry(ZipEntry); ZipStream.SetLevel(CompressionLevel);
            ZipStream.SetLevel(CompressionLevel); byte[] buffer = new byte[BlockSize];
            byte[] buffer = new byte[BlockSize]; System.Int32 size =StreamToZip.Read(buffer,0,buffer.Length);
            System.Int32 size =StreamToZip.Read(buffer,0,buffer.Length); ZipStream.Write(buffer,0,size);
            ZipStream.Write(buffer,0,size); try
            try  {
            { while (size < StreamToZip.Length)
                while (size < StreamToZip.Length)  {
                { int sizeRead =StreamToZip.Read(buffer,0,buffer.Length);
                    int sizeRead =StreamToZip.Read(buffer,0,buffer.Length); ZipStream.Write(buffer,0,sizeRead);
                    ZipStream.Write(buffer,0,sizeRead); size += sizeRead;
                    size += sizeRead; }
                } }
            }  catch(System.Exception ex)
            catch(System.Exception ex) {
            { throw ex;
                throw ex; }
            } ZipStream.Finish();
            ZipStream.Finish(); ZipStream.Close();
            ZipStream.Close(); StreamToZip.Close();
            StreamToZip.Close(); }
        } 
  public void ZipFileMain(string[] args)
        public void ZipFileMain(string[] args) {
        { //string[] filenames = Directory.GetFiles(args[0]);
            //string[] filenames = Directory.GetFiles(args[0]); string[] filenames = new string[]{args[0]};
            string[] filenames = new string[]{args[0]}; 
   Crc32 crc = new Crc32();
            Crc32 crc = new Crc32(); ZipOutputStream s = new ZipOutputStream(File.Create(args[1]));
            ZipOutputStream s = new ZipOutputStream(File.Create(args[1])); 
   s.SetLevel(6); // 0 - store only to 9 - means best compression
            s.SetLevel(6); // 0 - store only to 9 - means best compression 
   foreach (string file in filenames)
            foreach (string file in filenames)  {
            { //打开压缩文件
                //打开压缩文件 FileStream fs = File.OpenRead(file);
                FileStream fs = File.OpenRead(file); 
    byte[] buffer = new byte[fs.Length];
                byte[] buffer = new byte[fs.Length]; fs.Read(buffer, 0, buffer.Length);
                fs.Read(buffer, 0, buffer.Length); ZipEntry entry = new ZipEntry(file);
                ZipEntry entry = new ZipEntry(file); 
    entry.DateTime = DateTime.Now;
                entry.DateTime = DateTime.Now; 
    // set Size and the crc, because the information
                // set Size and the crc, because the information // about the size and crc should be stored in the header
                // about the size and crc should be stored in the header // if it is not set it is automatically written in the footer.
                // if it is not set it is automatically written in the footer. // (in this case size == crc == -1 in the header)
                // (in this case size == crc == -1 in the header) // Some ZIP programs have problems with zip files that don't store
                // Some ZIP programs have problems with zip files that don't store // the size and crc in the header.
                // the size and crc in the header. entry.Size = fs.Length;
                entry.Size = fs.Length; fs.Close();
                fs.Close(); 
    crc.Reset();
                crc.Reset(); crc.Update(buffer);
                crc.Update(buffer); 
    entry.Crc  = crc.Value;
                entry.Crc  = crc.Value; 
    s.PutNextEntry(entry);
                s.PutNextEntry(entry); 
    s.Write(buffer, 0, buffer.Length);
                s.Write(buffer, 0, buffer.Length); 
    }
            }   s.Finish();
            s.Finish(); s.Close();
            s.Close(); }
        } }
    } #endregion
    #endregion
 #region UnZipClass 解压文件
    #region UnZipClass 解压文件 public class UnZipClass
    public class UnZipClass {
    {    /// <summary>
        /// <summary> /// 解压文件
        /// 解压文件 /// </summary>
        /// </summary> /// <param name="args">包含要解压的文件名和要解压到的目录名数组</param>
        /// <param name="args">包含要解压的文件名和要解压到的目录名数组</param> public void UnZip(string[] args)
        public void UnZip(string[] args) {
        { ZipInputStream s = new ZipInputStream(File.OpenRead(args[0]));
            ZipInputStream s = new ZipInputStream(File.OpenRead(args[0])); try
            try {
            {                 ZipEntry theEntry;
                ZipEntry theEntry; while ((theEntry = s.GetNextEntry()) != null)
                while ((theEntry = s.GetNextEntry()) != null)  {
                {    string directoryName = Path.GetDirectoryName(args[1]);
                    string directoryName = Path.GetDirectoryName(args[1]); string fileName      = Path.GetFileName(theEntry.Name);
                    string fileName      = Path.GetFileName(theEntry.Name); 
    //生成解压目录
                    //生成解压目录 Directory.CreateDirectory(directoryName);
                    Directory.CreateDirectory(directoryName); 
    if (fileName != String.Empty)
                    if (fileName != String.Empty)  {
                    {    //解压文件到指定的目录
                        //解压文件到指定的目录 FileStream streamWriter = File.Create(args[1]+fileName);
                        FileStream streamWriter = File.Create(args[1]+fileName); 
     int size = 2048;
                        int size = 2048; byte[] data = new byte[2048];
                        byte[] data = new byte[2048]; while (true)
                        while (true)  {
                        { size = s.Read(data, 0, data.Length);
                            size = s.Read(data, 0, data.Length); if (size > 0)
                            if (size > 0)  {
                            { streamWriter.Write(data, 0, size);
                                streamWriter.Write(data, 0, size); }
                            }  else
                            else  {
                            { break;
                                break; }
                            } }
                        } 
     streamWriter.Close();
                        streamWriter.Close(); }
                    } }
                } s.Close();
                s.Close(); }
            } catch(Exception eu)
            catch(Exception eu) {
            { throw eu;
                throw eu; }
            } finally
            finally {
            { s.Close();
                s.Close(); }
            }
 }//end UnZip
        }//end UnZip

 }//end UnZipClass
    }//end UnZipClass #endregion
    #endregion
 #region AttachmentUnZip
    #region AttachmentUnZip public class AttachmentUnZip
    public class AttachmentUnZip {
    { public AttachmentUnZip()
        public AttachmentUnZip() {
        {             }
        } public static void UpZip(string zipFile)
        public static void UpZip(string zipFile) {
        { string []FileProperties=new string[2];
            string []FileProperties=new string[2];
 FileProperties[0]=zipFile;//待解压的文件
            FileProperties[0]=zipFile;//待解压的文件
 FileProperties[1]=zipFile.Substring(0,zipFile.LastIndexOf("\\")+1);//解压后放置的目标目录
            FileProperties[1]=zipFile.Substring(0,zipFile.LastIndexOf("\\")+1);//解压后放置的目标目录
 UnZipClass UnZc=new UnZipClass();
            UnZipClass UnZc=new UnZipClass();
 UnZc.UnZip(FileProperties);
            UnZc.UnZip(FileProperties); }
        }
 }
    } #endregion
    #endregion }
}3.1html
 <HTML>
<HTML> <HEAD>
    <HEAD> <title>WebForm1</title>
        <title>WebForm1</title> <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
        <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1"> <meta name="CODE_LANGUAGE" Content="C#">
        <meta name="CODE_LANGUAGE" Content="C#"> <meta name="vs_defaultClientScript" content="JavaScript">
        <meta name="vs_defaultClientScript" content="JavaScript"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> </HEAD>
    </HEAD> <body MS_POSITIONING="GridLayout">
    <body MS_POSITIONING="GridLayout"> <form id="Form1" method="post" runat="server">
        <form id="Form1" method="post" runat="server"> <asp:Button id="Button1" style="Z-INDEX: 101; LEFT: 56px; POSITION: absolute; TOP: 64px" runat="server"
            <asp:Button id="Button1" style="Z-INDEX: 101; LEFT: 56px; POSITION: absolute; TOP: 64px" runat="server" Text="压缩"></asp:Button>
                Text="压缩"></asp:Button> <asp:Button id="Button2" style="Z-INDEX: 102; LEFT: 112px; POSITION: absolute; TOP: 64px" runat="server"
            <asp:Button id="Button2" style="Z-INDEX: 102; LEFT: 112px; POSITION: absolute; TOP: 64px" runat="server" Text="解压"></asp:Button><INPUT id="File1" style="Z-INDEX: 103; LEFT: 32px; POSITION: absolute; TOP: 24px" type="file"
                Text="解压"></asp:Button><INPUT id="File1" style="Z-INDEX: 103; LEFT: 32px; POSITION: absolute; TOP: 24px" type="file" name="File1" runat="server">
                name="File1" runat="server"> </form>
        </form> </body>
    </body> </HTML>
</HTML> public class WebForm1 : System.Web.UI.Page
public class WebForm1 : System.Web.UI.Page {
    { protected System.Web.UI.WebControls.Button Button1;
        protected System.Web.UI.WebControls.Button Button1; protected System.Web.UI.HtmlControls.HtmlInputFile File1;
        protected System.Web.UI.HtmlControls.HtmlInputFile File1; protected System.Web.UI.WebControls.Button Button2;
        protected System.Web.UI.WebControls.Button Button2; 
     private void Page_Load(object sender, System.EventArgs e)
        private void Page_Load(object sender, System.EventArgs e) {
        { // Put user code to initialize the page here
            // Put user code to initialize the page here }
        }

 Web Form Designer generated code Web Form Designer generated code
        Web Form Designer generated code Web Form Designer generated code override protected void OnInit(EventArgs e)
        override protected void OnInit(EventArgs e) {
        { //
            // // CODEGEN: This call is required by the ASP.NET Web Form Designer.
            // CODEGEN: This call is required by the ASP.NET Web Form Designer. //
            // InitializeComponent();
            InitializeComponent(); base.OnInit(e);
            base.OnInit(e); }
        } 
         /// <summary>
        /// <summary> /// Required method for Designer support - do not modify
        /// Required method for Designer support - do not modify /// the contents of this method with the code editor.
        /// the contents of this method with the code editor. /// </summary>
        /// </summary> private void InitializeComponent()
        private void InitializeComponent() {
        {     this.Button1.Click += new System.EventHandler(this.Button1_Click);
            this.Button1.Click += new System.EventHandler(this.Button1_Click); this.Button2.Click += new System.EventHandler(this.Button2_Click);
            this.Button2.Click += new System.EventHandler(this.Button2_Click); this.Load += new System.EventHandler(this.Page_Load);
            this.Load += new System.EventHandler(this.Page_Load);
 }
        } #endregion
        #endregion
 #region 压缩
        #region 压缩 private void Button1_Click(object sender, System.EventArgs e)
        private void Button1_Click(object sender, System.EventArgs e) {
        { string []FileProperties=new string[2];
            string []FileProperties=new string[2];             string fullName=this.File1.PostedFile.FileName;//C:\test\a.txt
            string fullName=this.File1.PostedFile.FileName;//C:\test\a.txt string destPath=System.IO.Path.GetDirectoryName(fullName);//C:\test
            string destPath=System.IO.Path.GetDirectoryName(fullName);//C:\test //待压缩文件
            //待压缩文件 FileProperties[0]=fullName;
            FileProperties[0]=fullName;
 //压缩后的目标文件
            //压缩后的目标文件 FileProperties[1]= destPath +"\\"+ System.IO.Path.GetFileNameWithoutExtension(fullName)+".zip";
            FileProperties[1]= destPath +"\\"+ System.IO.Path.GetFileNameWithoutExtension(fullName)+".zip"; ZipClass Zc=new ZipClass();
            ZipClass Zc=new ZipClass(); Zc.ZipFileMain(FileProperties);
            Zc.ZipFileMain(FileProperties);
 //删除压缩前的文件
            //删除压缩前的文件 System.IO.File.Delete(fullName);
            System.IO.File.Delete(fullName); }
        }
 #endregion
        #endregion
 解压 解压
        解压 解压 private void Button2_Click(object sender, System.EventArgs e)
        private void Button2_Click(object sender, System.EventArgs e) {
        { string fullName=this.File1.PostedFile.FileName;//C:\test\a.zip
            string fullName=this.File1.PostedFile.FileName;//C:\test\a.zip //解压文件
            //解压文件 AttachmentUnZip.UpZip(fullName);
            AttachmentUnZip.UpZip(fullName); }
        } #endregion
        #endregion }
    } 
                    
                     
                    
                 
                    
                 
                
 
 
        
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号