在做项目的时候经常会用到文件的要所或者是解压缩,这里提供一个文件的压缩操作的类

C#中文件压缩操作的一个类_文件名 public class ZIPPER : IDisposable
C#中文件压缩操作的一个类_解压缩_02C#中文件压缩操作的一个类_压缩文件_03    
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05        
private string m_FolderToZIP;
C#中文件压缩操作的一个类_压缩文件_05        
private ArrayList m_FileNamesToZIP;
C#中文件压缩操作的一个类_压缩文件_05        
private string m_FileNameZipped;
C#中文件压缩操作的一个类_压缩文件_05        
C#中文件压缩操作的一个类_压缩文件_05        
private ZipOutputStream m_ZipStream = null;
C#中文件压缩操作的一个类_压缩文件_05        
private Crc32 m_Crc;
C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_解压缩_12C#中文件压缩操作的一个类_文件名_13        
Begin for Public Properties#region Begin for Public Properties
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12        
/**//**//**//// <summary>
C#中文件压缩操作的一个类_压缩文件_05        
/// 保存压缩文件的路径
C#中文件压缩操作的一个类_解压缩_17        
/// </summary>

C#中文件压缩操作的一个类_压缩文件_05        public  string FolderToZIP
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12        
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12            
get C#中文件压缩操作的一个类_文件名_04return m_FolderToZIP; }
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12            
set C#中文件压缩操作的一个类_文件名_04{ m_FolderToZIP = value; }
C#中文件压缩操作的一个类_解压缩_17        }

C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12        
/**//**//**//// <summary>
C#中文件压缩操作的一个类_压缩文件_05        
/// 要压缩的文件或文件夹
C#中文件压缩操作的一个类_解压缩_17        
/// </summary>

C#中文件压缩操作的一个类_压缩文件_05        public  ArrayList FileNamesToZIP
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12        
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12            
get C#中文件压缩操作的一个类_文件名_04return m_FileNamesToZIP; }
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12            
set C#中文件压缩操作的一个类_文件名_04{ m_FileNamesToZIP = value; }
C#中文件压缩操作的一个类_解压缩_17        }

C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12        
/**//**//**//// <summary>
C#中文件压缩操作的一个类_压缩文件_05        
/// 压缩后的文件路径  
C#中文件压缩操作的一个类_解压缩_17        
/// </summary>

C#中文件压缩操作的一个类_压缩文件_05        public  string FileNameZipped
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12        
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12            
get C#中文件压缩操作的一个类_文件名_04return m_FileNameZipped; }
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12            
set C#中文件压缩操作的一个类_文件名_04{ m_FileNameZipped = value; }
C#中文件压缩操作的一个类_解压缩_17        }

C#中文件压缩操作的一个类_解压缩_17        
#endregion

C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12        
/**//**//**//// <summary>
C#中文件压缩操作的一个类_压缩文件_05        
/// The construct
C#中文件压缩操作的一个类_解压缩_17        
/// </summary>

C#中文件压缩操作的一个类_压缩文件_05        public ZIPPER()
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12        
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05            
this.m_FolderToZIP = "";
C#中文件压缩操作的一个类_压缩文件_05            
this.m_FileNamesToZIP = new ArrayList();
C#中文件压缩操作的一个类_压缩文件_05            
this.m_FileNameZipped = "";
C#中文件压缩操作的一个类_解压缩_17        }

C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_解压缩_12C#中文件压缩操作的一个类_文件名_13        
ZipFolder#region ZipFolder
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12        
/**//**//**//// <summary>
C#中文件压缩操作的一个类_压缩文件_05        
/// Zip one folder : single level
C#中文件压缩操作的一个类_压缩文件_05        
/// Before doing this event, you must set the Folder and the ZIP file name you want
C#中文件压缩操作的一个类_解压缩_17        
/// </summary>

C#中文件压缩操作的一个类_压缩文件_05        public void ZipFolder()
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12        
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05            
if (this.m_FolderToZIP.Trim().Length == 0)
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12            
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05                
throw new Exception("You must setup the folder name you want to zip!");
C#中文件压缩操作的一个类_解压缩_17            }

C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_压缩文件_05            
if(Directory.Exists(this.m_FolderToZIP) == false)
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12            
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05                
throw new Exception("The folder you input does not exist! Please check it!");
C#中文件压缩操作的一个类_解压缩_17            }

C#中文件压缩操作的一个类_压缩文件_05            
C#中文件压缩操作的一个类_压缩文件_05            
if (this.m_FileNameZipped.Trim().Length == 0)
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12            
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05                
throw new Exception("You must setup the zipped file name!");
C#中文件压缩操作的一个类_解压缩_17            }

C#中文件压缩操作的一个类_压缩文件_05            
C#中文件压缩操作的一个类_压缩文件_05            
string[] fileNames = Directory.GetFiles(this.m_FolderToZIP.Trim());
C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_压缩文件_05            
if (fileNames.Length == 0)
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12            
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05                
throw new Exception("Can not find any file in this folder(" + this.m_FolderToZIP + ")!");
C#中文件压缩操作的一个类_解压缩_17            }

C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_压缩文件_05            
// Create the Zip File
C#中文件压缩操作的一个类_压缩文件_05
            this.CreateZipFile(this.m_FileNameZipped);
C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_压缩文件_05            
// Zip all files
C#中文件压缩操作的一个类_压缩文件_05
            foreach(string file in fileNames)
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12            
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05                
this.ZipSingleFile(file);
C#中文件压缩操作的一个类_解压缩_17            }

C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_压缩文件_05            
// Close the Zip File
C#中文件压缩操作的一个类_压缩文件_05
            this.CloseZipFile();
C#中文件压缩操作的一个类_解压缩_17        }

C#中文件压缩操作的一个类_解压缩_17        
#endregion

C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_解压缩_12C#中文件压缩操作的一个类_文件名_13        
ZipFiles#region ZipFiles
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12        
/**//**//**//// <summary>
C#中文件压缩操作的一个类_压缩文件_05        
/// Zip files
C#中文件压缩操作的一个类_压缩文件_05        
/// Before doing this event, you must set the Files name and the ZIP file name you want
C#中文件压缩操作的一个类_解压缩_17        
/// </summary>

C#中文件压缩操作的一个类_压缩文件_05        public void ZipFiles()
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12        
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05            
if (this.m_FileNamesToZIP.Count == 0)
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12            
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05                
throw new Exception("You must setup the files name you want to zip!");
C#中文件压缩操作的一个类_解压缩_17            }

C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_压缩文件_05            
foreach(object file in this.m_FileNamesToZIP)
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12            
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05                
if(File.Exists(((string)file).Trim()) == false)
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12                
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05                    
throw new Exception("The file(" + (string)file + ") you input does not exist! Please check it!");
C#中文件压缩操作的一个类_解压缩_17                }

C#中文件压缩操作的一个类_解压缩_17            }

C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_压缩文件_05            
if (this.m_FileNameZipped.Trim().Length == 0)
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12            
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05                
throw new Exception("You must input the zipped file name!");
C#中文件压缩操作的一个类_解压缩_17            }

C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_压缩文件_05            
// Create the Zip File
C#中文件压缩操作的一个类_压缩文件_05
            this.CreateZipFile(this.m_FileNameZipped);
C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_压缩文件_05            
// Zip this File
C#中文件压缩操作的一个类_压缩文件_05
            foreach(object file in this.m_FileNamesToZIP)
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12            
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05                
this.ZipSingleFile((string)file);
C#中文件压缩操作的一个类_解压缩_17            }

C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_压缩文件_05            
// Close the Zip File
C#中文件压缩操作的一个类_压缩文件_05
            this.CloseZipFile();
C#中文件压缩操作的一个类_解压缩_17        }

C#中文件压缩操作的一个类_解压缩_17        
#endregion

C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_解压缩_12C#中文件压缩操作的一个类_文件名_13        
CreateZipFile#region CreateZipFile
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12        
/**//**//**//// <summary>
C#中文件压缩操作的一个类_压缩文件_05        
/// Create Zip File by FileNameZipped
C#中文件压缩操作的一个类_压缩文件_05        
/// </summary>
C#中文件压缩操作的一个类_解压缩_17        
/// <param name="fileNameZipped">zipped file name like "C:TestMyZipFile.ZIP"</param>

C#中文件压缩操作的一个类_压缩文件_05        private void CreateZipFile(string fileNameZipped)
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12        
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05            
this.m_Crc = new Crc32();
C#中文件压缩操作的一个类_压缩文件_05            
this.m_ZipStream = new ZipOutputStream(File.Create(fileNameZipped));
C#中文件压缩操作的一个类_压缩文件_05            
this.m_ZipStream.SetLevel(6); // 0 - store only to 9 - means best compression
C#中文件压缩操作的一个类_解压缩_17
        }

C#中文件压缩操作的一个类_解压缩_17        
#endregion

C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_解压缩_12C#中文件压缩操作的一个类_文件名_13        
CloseZipFile#region CloseZipFile
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12        
/**//**//**//// <summary>
C#中文件压缩操作的一个类_压缩文件_05        
/// Close the Zip file
C#中文件压缩操作的一个类_解压缩_17        
/// </summary>

C#中文件压缩操作的一个类_压缩文件_05        private void CloseZipFile()
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12        
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05            
this.m_ZipStream.Finish();
C#中文件压缩操作的一个类_压缩文件_05            
this.m_ZipStream.Close();
C#中文件压缩操作的一个类_压缩文件_05            
this.m_ZipStream = null;
C#中文件压缩操作的一个类_解压缩_17        }

C#中文件压缩操作的一个类_解压缩_17        
#endregion

C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_解压缩_12C#中文件压缩操作的一个类_文件名_13        
ZipSingleFile#region ZipSingleFile
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12        
/**//**//**//// <summary>
C#中文件压缩操作的一个类_压缩文件_05        
/// Zip single file 
C#中文件压缩操作的一个类_压缩文件_05        
/// </summary>
C#中文件压缩操作的一个类_解压缩_17        
/// <param name="fileName">file name like "C:TestTest.txt"</param>

C#中文件压缩操作的一个类_压缩文件_05        private void ZipSingleFile(string fileNameToZip)
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12        
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05            
// Open and read this file
C#中文件压缩操作的一个类_压缩文件_05
            FileStream fso = File.OpenRead(fileNameToZip);
C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_压缩文件_05            
// Read this file to Buffer
C#中文件压缩操作的一个类_压缩文件_05
            byte[] buffer = new byte[fso.Length];
C#中文件压缩操作的一个类_压缩文件_05            fso.Read(buffer,
0,buffer.Length);
C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_压缩文件_05            
// Create a new ZipEntry
C#中文件压缩操作的一个类_压缩文件_05
            ZipEntry zipEntry = new ZipEntry(fileNameToZip.Split('\\')[fileNameToZip.Split('\\').Length - 1]);
C#中文件压缩操作的一个类_压缩文件_05            
//ZipEntry zipEntry = new ZipEntry(fileNameToZip);
C#中文件压缩操作的一个类_压缩文件_05

C#中文件压缩操作的一个类_压缩文件_05            zipEntry.DateTime 
= DateTime.Now;
C#中文件压缩操作的一个类_压缩文件_05            
// set Size and the crc, because the information
C#中文件压缩操作的一个类_压缩文件_05            
// about the size and crc should be stored in the header
C#中文件压缩操作的一个类_压缩文件_05            
// if it is not set it is automatically written in the footer.
C#中文件压缩操作的一个类_压缩文件_05            
// (in this case size == crc == -1 in the header)
C#中文件压缩操作的一个类_压缩文件_05            
// Some ZIP programs have problems with zip files that don't store
C#中文件压缩操作的一个类_压缩文件_05            
// the size and crc in the header.
C#中文件压缩操作的一个类_压缩文件_05
            zipEntry.Size = fso.Length;
C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_压缩文件_05            fso.Close();
C#中文件压缩操作的一个类_压缩文件_05            fso 
= null;
C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_压缩文件_05            
// Using CRC to format the buffer
C#中文件压缩操作的一个类_压缩文件_05
            this.m_Crc.Reset();
C#中文件压缩操作的一个类_压缩文件_05            
this.m_Crc.Update(buffer);
C#中文件压缩操作的一个类_压缩文件_05            zipEntry.Crc 
= this.m_Crc.Value;
C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_压缩文件_05            
// Add this ZipEntry to the ZipStream
C#中文件压缩操作的一个类_压缩文件_05
            this.m_ZipStream.PutNextEntry(zipEntry);
C#中文件压缩操作的一个类_压缩文件_05            
this.m_ZipStream.Write(buffer,0,buffer.Length);
C#中文件压缩操作的一个类_解压缩_17        }

C#中文件压缩操作的一个类_解压缩_17        
#endregion

C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_解压缩_12C#中文件压缩操作的一个类_文件名_13        
IDisposable member#region IDisposable member
C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12        
/**//**//**//// <summary>
C#中文件压缩操作的一个类_压缩文件_05        
/// Release all objects
C#中文件压缩操作的一个类_解压缩_17        
/// </summary>

C#中文件压缩操作的一个类_压缩文件_05        public void Dispose()
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12        
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05            
if(this.m_ZipStream != null)
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12            
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05                
this.m_ZipStream.Close();
C#中文件压缩操作的一个类_压缩文件_05                
this.m_ZipStream = null;
C#中文件压缩操作的一个类_解压缩_17            }

C#中文件压缩操作的一个类_解压缩_17        }

C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_解压缩_17        
#endregion

C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_解压缩_12C#中文件压缩操作的一个类_文件名_13        
将文件夹压缩文件#region 将文件夹压缩文件
C#中文件压缩操作的一个类_压缩文件_05        
private ZipOutputStream zos = null;
C#中文件压缩操作的一个类_压缩文件_05        
private string strBaseDir = "";
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12        
/**//// <summary>
C#中文件压缩操作的一个类_压缩文件_05        
/// 
C#中文件压缩操作的一个类_压缩文件_05        
/// </summary>
C#中文件压缩操作的一个类_压缩文件_05        
/// <param name="strPath">要压缩的文件路径</param>
C#中文件压缩操作的一个类_解压缩_17        
/// <param name="strFileName">压缩后的文件名</param>

C#中文件压缩操作的一个类_压缩文件_05        public void DirectoryToZip(string strPath, string strFileName)
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12        
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05            MemoryStream ms 
= null;
C#中文件压缩操作的一个类_压缩文件_05            HttpContext.Current.Response.ContentType 
= "application/octet-stream";
C#中文件压缩操作的一个类_压缩文件_05            strFileName 
= HttpUtility.UrlEncode(strFileName).Replace('+'' ');
C#中文件压缩操作的一个类_压缩文件_05            HttpContext.Current.Response.AddHeader(
"Content-Disposition""attachment; filename=" + strFileName + ".zip");
C#中文件压缩操作的一个类_压缩文件_05            ms 
= new MemoryStream();
C#中文件压缩操作的一个类_压缩文件_05            zos 
= new ZipOutputStream(ms);
C#中文件压缩操作的一个类_压缩文件_05            strBaseDir 
= strPath + "\\";
C#中文件压缩操作的一个类_压缩文件_05            addZipEntry(strBaseDir);
C#中文件压缩操作的一个类_压缩文件_05            zos.Finish();
C#中文件压缩操作的一个类_压缩文件_05            zos.Close();
C#中文件压缩操作的一个类_压缩文件_05            HttpContext.Current.Response.Clear();
C#中文件压缩操作的一个类_压缩文件_05            HttpContext.Current.Response.BinaryWrite(ms.ToArray());
C#中文件压缩操作的一个类_压缩文件_05            HttpContext.Current.Response.End();
C#中文件压缩操作的一个类_解压缩_17        }

C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_压缩文件_05        
public void addZipEntry(string PathStr)
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12        
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05            DirectoryInfo di 
= new DirectoryInfo(PathStr);
C#中文件压缩操作的一个类_压缩文件_05            
foreach (DirectoryInfo item in di.GetDirectories())
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12            
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05                addZipEntry(item.FullName);
C#中文件压缩操作的一个类_解压缩_17            }

C#中文件压缩操作的一个类_压缩文件_05            
foreach (FileInfo item in di.GetFiles())
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12            
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05                FileStream fs 
= File.OpenRead(item.FullName);
C#中文件压缩操作的一个类_压缩文件_05                
byte[] buffer = new byte[fs.Length];
C#中文件压缩操作的一个类_压缩文件_05                fs.Read(buffer, 
0, buffer.Length);
C#中文件压缩操作的一个类_压缩文件_05                
string strEntryName = item.FullName.Replace(strBaseDir, "");
C#中文件压缩操作的一个类_压缩文件_05                ZipEntry entry 
= new ZipEntry(strEntryName);
C#中文件压缩操作的一个类_压缩文件_05                
//ZipEntry entry = new ZipEntry(strEntryName.Split('\\')[strEntryName.Split('\\').Length - 1]);
C#中文件压缩操作的一个类_压缩文件_05
                zos.PutNextEntry(entry);
C#中文件压缩操作的一个类_压缩文件_05                zos.Write(buffer, 
0, buffer.Length);
C#中文件压缩操作的一个类_压缩文件_05                fs.Close();
C#中文件压缩操作的一个类_解压缩_17            }

C#中文件压缩操作的一个类_解压缩_17        }

C#中文件压缩操作的一个类_解压缩_17        
#endregion

C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_解压缩_12C#中文件压缩操作的一个类_文件名_13        
===压缩然后输出到页面===#region ===压缩然后输出到页面===
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12        
/**//// <summary>
C#中文件压缩操作的一个类_压缩文件_05        
/// 压缩然后输出到页面
C#中文件压缩操作的一个类_压缩文件_05        
/// </summary>
C#中文件压缩操作的一个类_压缩文件_05        
/// <param name="inputdirectory">输入文件夹</param>
C#中文件压缩操作的一个类_压缩文件_05        
/// <param name="tmpdirectory">输出临时文件夹</param>
C#中文件压缩操作的一个类_解压缩_17        
/// <param name="strFileName">输出下载的文件名</param>

C#中文件压缩操作的一个类_压缩文件_05        public static void PackFiles(string inputdirectory, string tmpdirectory, string strFileName)
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12        
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05            
string exportfile = tmpdirectory + strFileName + ".ZIP";
C#中文件压缩操作的一个类_压缩文件_05            
try
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12            
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05                FastZip fz 
= new FastZip();
C#中文件压缩操作的一个类_压缩文件_05                fz.CreateEmptyDirectories 
= true;
C#中文件压缩操作的一个类_压缩文件_05                fz.CreateZip(exportfile, inputdirectory, 
true"");
C#中文件压缩操作的一个类_压缩文件_05                fz 
= null;
C#中文件压缩操作的一个类_压缩文件_05                
try
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12                
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05                    
//删除临时文件
C#中文件压缩操作的一个类_压缩文件_05
                    Directory.Delete(inputdirectory, true);
C#中文件压缩操作的一个类_解压缩_17                }

C#中文件压缩操作的一个类_压缩文件_05                
catch
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12                
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_解压缩_17                }

C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_压缩文件_05                DownLoadUtils.ExportFile(exportfile, strFileName 
+ ".ZIP"true);
C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_解压缩_17            }

C#中文件压缩操作的一个类_压缩文件_05            
catch (Exception ex)
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12            
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05                
throw;
C#中文件压缩操作的一个类_解压缩_17            }

C#中文件压缩操作的一个类_解压缩_17        }

C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_解压缩_17        
#endregion
 
C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_文件名_394    }

C#中文件压缩操作的一个类_文件名
C#中文件压缩操作的一个类_文件名
C#中文件压缩操作的一个类_文件名    
C#中文件压缩操作的一个类_文件名
C#中文件压缩操作的一个类_文件名
C#中文件压缩操作的一个类_压缩文件_03C#中文件压缩操作的一个类_解压缩_02    
===解压===#region ===解压===
C#中文件压缩操作的一个类_压缩文件_05    
public class ZipUtils
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12    
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05        
public class UnzipException : ApplicationException
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12        
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12            
public UnzipException(string msg) : base(msg) C#中文件压缩操作的一个类_文件名_04{ }
C#中文件压缩操作的一个类_解压缩_17        }

C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12        
/**//// <summary>
C#中文件压缩操作的一个类_压缩文件_05        
/// 解压缩文件到指定目录
C#中文件压缩操作的一个类_压缩文件_05        
/// </summary>
C#中文件压缩操作的一个类_压缩文件_05        
/// <param name="filePath">表示压缩文件所在的路径</param>
C#中文件压缩操作的一个类_解压缩_17        
/// <param name="extractFolder">表示解压缩后文件存放的目录</param>

C#中文件压缩操作的一个类_压缩文件_05        public static void UnzipPack(string filePath, string extractFolder)
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12        
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05            ZipConstants.DefaultCodePage 
= 936;//中文
C#中文件压缩操作的一个类_压缩文件_05
            ZipInputStream s = null;
C#中文件压缩操作的一个类_压缩文件_05            
try
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12            
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05                s 
= new ZipInputStream(File.OpenRead(filePath));
C#中文件压缩操作的一个类_压缩文件_05                
//zip文件的入口类
C#中文件压缩操作的一个类_压缩文件_05
                ZipEntry theEntry;
C#中文件压缩操作的一个类_压缩文件_05                
//遍历压缩文件的所有入口
C#中文件压缩操作的一个类_压缩文件_05

C#中文件压缩操作的一个类_压缩文件_05                
while (null != (theEntry = s.GetNextEntry()))
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12                
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05                    
//设置解压文件目录名和文件名
C#中文件压缩操作的一个类_压缩文件_05
C#中文件压缩操作的一个类_压缩文件_05                    
//string directoryName = Path.GetDirectoryName ( extractFolder );
C#中文件压缩操作的一个类_压缩文件_05
                    string directoryName = extractFolder;
C#中文件压缩操作的一个类_压缩文件_05                    
//MessageBox.Show("directoryName:{0}",directoryName );
C#中文件压缩操作的一个类_压缩文件_05
                    string fileName = Path.GetFileName(theEntry.Name);
C#中文件压缩操作的一个类_压缩文件_05                    
//生成解压目录
C#中文件压缩操作的一个类_压缩文件_05
                    Directory.CreateDirectory(directoryName);
C#中文件压缩操作的一个类_压缩文件_05                    
if (String.Empty != fileName)
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12                    
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05                        
//解压文件到指定文件夹
C#中文件压缩操作的一个类_压缩文件_05
                        string path = directoryName + "/" + theEntry.Name;
C#中文件压缩操作的一个类_压缩文件_05                        FileInfo fileInfo 
= new FileInfo(path);
C#中文件压缩操作的一个类_压缩文件_05                        
string str = path.Substring(0, path.Length - fileInfo.Name.Length - 1);
C#中文件压缩操作的一个类_压缩文件_05                        
//MessageBox.Show(path );
C#中文件压缩操作的一个类_压缩文件_05
                        if (!Directory.Exists(str)) Directory.CreateDirectory(str);
C#中文件压缩操作的一个类_压缩文件_05                        FileStream streamWriter 
= File.Create(path);
C#中文件压缩操作的一个类_压缩文件_05                        
int size = 2048;
C#中文件压缩操作的一个类_压缩文件_05                        
byte[] data = new byte[2048];
C#中文件压缩操作的一个类_压缩文件_05                        
while (true)
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12                        
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05                            size 
= s.Read(data, 0, data.Length);
C#中文件压缩操作的一个类_压缩文件_05                            
if (size > 0)
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12                            
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05                                streamWriter.Write(data, 
0, size);
C#中文件压缩操作的一个类_解压缩_17                            }

C#中文件压缩操作的一个类_压缩文件_05                            
else
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12                            
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05                                
break;
C#中文件压缩操作的一个类_解压缩_17                            }

C#中文件压缩操作的一个类_解压缩_17                        }

C#中文件压缩操作的一个类_压缩文件_05                        streamWriter.Close();
C#中文件压缩操作的一个类_解压缩_17                    }

C#中文件压缩操作的一个类_解压缩_17                }

C#中文件压缩操作的一个类_解压缩_17            }

C#中文件压缩操作的一个类_压缩文件_05            
catch
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12            
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05                
throw new UnzipException("ZipFileNotFound");
C#中文件压缩操作的一个类_解压缩_17            }

C#中文件压缩操作的一个类_压缩文件_05            
finally
C#中文件压缩操作的一个类_文件名_13C#中文件压缩操作的一个类_解压缩_12            
C#中文件压缩操作的一个类_文件名_04{
C#中文件压缩操作的一个类_压缩文件_05                s.Close();
C#中文件压缩操作的一个类_解压缩_17            }

C#中文件压缩操作的一个类_解压缩_17        }

C#中文件压缩操作的一个类_解压缩_17    }

C#中文件压缩操作的一个类_文件名_394    
#endregion