/// <summary>
/// 使用 ICSharpCode.SharpZipLib.dll 压缩文件 方法实例
/// </summary>
/// <param name="FileToZip">需要被压缩的文件路径</param>
/// <param name="ZipedFile">压缩后(zip)文件路径</param>
/// <param name="filename">压缩包内文件的名称</param>
/// <param name="CompressionLevel">压缩级数(0-9)</param>
/// <param name="BlockSize">单次读取字节数(2048/4096/..)</param>
public void ZipFile(string FileToZip, string ZipedFile, string filename, int CompressionLevel, int BlockSize)
{
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);
ZipOutputStream ZipStream = new ZipOutputStream(ZipFile);
ZipEntry ZipEntry = new ZipEntry(filename);
ZipStream.PutNextEntry(ZipEntry);
ZipStream.SetLevel(CompressionLevel);
byte[] buffer = new byte[BlockSize];
System.Int32 size = StreamToZip.Read(buffer, 0, buffer.Length);
ZipStream.Write(buffer, 0, size);
try
{
while (size < StreamToZip.Length)
{
int sizeRead = StreamToZip.Read(buffer, 0, buffer.Length);
ZipStream.Write(buffer, 0, sizeRead);
size += sizeRead;
}
}
catch (System.Exception ex)
{
throw ex;
}
ZipStream.Finish();
ZipStream.Close();
StreamToZip.Close();
/// 使用 ICSharpCode.SharpZipLib.dll 压缩文件 方法实例
/// </summary>
/// <param name="FileToZip">需要被压缩的文件路径</param>
/// <param name="ZipedFile">压缩后(zip)文件路径</param>
/// <param name="filename">压缩包内文件的名称</param>
/// <param name="CompressionLevel">压缩级数(0-9)</param>
/// <param name="BlockSize">单次读取字节数(2048/4096/..)</param>
public void ZipFile(string FileToZip, string ZipedFile, string filename, int CompressionLevel, int BlockSize)
{
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);
ZipOutputStream ZipStream = new ZipOutputStream(ZipFile);
ZipEntry ZipEntry = new ZipEntry(filename);
ZipStream.PutNextEntry(ZipEntry);
ZipStream.SetLevel(CompressionLevel);
byte[] buffer = new byte[BlockSize];
System.Int32 size = StreamToZip.Read(buffer, 0, buffer.Length);
ZipStream.Write(buffer, 0, size);
try
{
while (size < StreamToZip.Length)
{
int sizeRead = StreamToZip.Read(buffer, 0, buffer.Length);
ZipStream.Write(buffer, 0, sizeRead);
size += sizeRead;
}
}
catch (System.Exception ex)
{
throw ex;
}
ZipStream.Finish();
ZipStream.Close();
StreamToZip.Close();
}