您的位置:首页 > 编程语言 > C#

使用 ICSharpCode.SharpZipLib.dll 压缩文件 方法实例

2012-01-07 14:11 513 查看
/// <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();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: