using System; using System.Text; using System.IO; using System.IO.Compression; public static class GZipStreamUtility { public static string Compress(string text) { if (String.IsNullOrEmpty(text)) return String.Empty; byte[] buffer = Encoding.UTF8.GetBytes(text); MemoryStream ms = new MemoryStream(); using (GZipStream zip = new GZipStream(ms, CompressionMode.Compress, true)) { zip.Write(buffer, 0, buffer.Length); } ms.Position = 0; MemoryStream outStream = new MemoryStream(); byte[] compressed = new byte[ms.Length]; ms.Read(compressed, 0, compressed.Length); byte[] gzBuffer = new byte[compressed.Length + 4]; System.Buffer.BlockCopy(compressed, 0, gzBuffer, 4, compressed.Length); System.Buffer.BlockCopy(BitConverter.GetBytes(buffer.Length), 0, gzBuffer, 0, 4); return Convert.ToBase64String(gzBuffer); } public static string Decompress(string compressedText) { if (String.IsNullOrEmpty(compressedText)) return String.Empty; byte[] gzBuffer = Convert.FromBase64String(compressedText); using (MemoryStream ms = new MemoryStream()) { int msgLength = BitConverter.ToInt32(gzBuffer, 0); int length = gzBuffer.Length - 4; ms.Write(gzBuffer, 4, length); byte[] buffer = new byte[msgLength]; ms.Position = 0; using (GZipStream zip = new GZipStream(ms, CompressionMode.Decompress)) { zip.Read(buffer, 0, buffer.Length); } return Encoding.UTF8.GetString(buffer); } } }
A blog by an ordinary Linux user who uses Windows in his day job.
Monday, November 1, 2010
Compress and Decompress text using System.IO.Compression...
I'm lazy today. This code was copied directly from internet for my personal reference.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment