使用 SharpZipLib 进行压缩的辅助类,简化压缩字节数组和字符串的操作。
using System;
using System.Text;
using System.IO;
using ICSharpCode.SharpZipLib.BZip2;
using ICSharpCode.SharpZipLib.GZip;
using ICSharpCode.SharpZipLib.Zip;
namespace Compression
{
/// <summary>
/// 压缩方式。
/// </summary>
public enum CompressionType
{
GZip,
BZip2,
Zip
}
/// <summary>
/// 使用 SharpZipLib 进行压缩的辅助类,简化压缩字节数组和字符串的操作。
/// </summary>
public class CompressionHelper
{
/// <summary>
/// 压缩供应者,默认为 GZip。
/// </summary>
public static CompressionType CompressionProvider = CompressionType.GZip;
#region Public methods
/// <summary>
/// 从原始字节数组生成已压缩的字节数组。
/// </summary>
/// <param name="bytesToCompress">原始字节数组。</param>
/// <returns>返回已压缩的字节数组</returns>
public static byte[] Compress( byte[] bytesToCompress )
{
MemoryStream ms = new MemoryStream();
Stream s = OutputStream( ms );
s.Write( bytesToCompress, 0, bytesToCompress.Length );
s.Close();
return ms.ToArray();
}
/// <summary>
/// 从原始字符串生成已压缩的字符串。
/// </summary>
/// <param name="stringToCompress">原始字符串。</param>
/// <returns>返回已压缩的字符串。</returns>
public static string Compress( string stringToCompress )
{
byte[] compressedData = CompressToByte( stringToCompress );
&nbs