///<summary> /// Uncompress a DEFLATE'd byte array into a single string. ///</summary> ///<seealso cref="DeflateStream.CompressString(String)">DeflateStream.CompressString(String)</seealso> ///<seealso cref="DeflateStream.UncompressBuffer(byte[])">DeflateStream.UncompressBuffer(byte[])</seealso> ///<seealso cref="GZipStream.UncompressString(byte[])">GZipStream.UncompressString(byte[])</seealso> ///<seealso cref="ZlibStream.UncompressString(byte[])">ZlibStream.UncompressString(byte[])</seealso> ///<param name="compressed"> A buffer containing DEFLATE-compressed data. </param> ///<returns> The uncompressed string </returns> public static String UncompressString(byte[] compressed) { using (var input = new MemoryStream(compressed)) { Stream decompressor = new DeflateStream(input, CompressionMode.Decompress); return ZlibBaseStream.UncompressString(compressed, decompressor); } }
///<summary> /// Compress a string into a byte array using DEFLATE (RFC 1951). ///</summary> ///<remarks> /// Uncompress it with <see cref="DeflateStream.UncompressString(byte[])" /> . ///</remarks> ///<seealso cref="DeflateStream.UncompressString(byte[])">DeflateStream.UncompressString(byte[])</seealso> ///<seealso cref="DeflateStream.CompressBuffer(byte[])">DeflateStream.CompressBuffer(byte[])</seealso> ///<seealso cref="GZipStream.CompressString(string)">GZipStream.CompressString(string)</seealso> ///<seealso cref="ZlibStream.CompressString(string)">ZlibStream.CompressString(string)</seealso> ///<param name="s"> A string to compress. The string will first be encoded using UTF8, then compressed. </param> ///<returns> The string in compressed form </returns> public static byte[] CompressString(String s) { using (var ms = new MemoryStream()) { Stream compressor = new DeflateStream(ms, CompressionMode.Compress, CompressionLevel.BestCompression); ZlibBaseStream.CompressString(s, compressor); return ms.ToArray(); } }