日期:2014-02-11  浏览次数:20354 次


使用 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