System.IO.Compression 命名空间 注意:此命名空间在 .NET Framework 2.0 版中是新增的。 System.IO.Compression 命名空间包含提供基本的流压缩和解压缩服务的类。 压缩字符串public static string ZipString(string unCompressedString) ...{ byte[] bytData = System.Text.Encoding.UTF8.GetBytes(unCompressedString); MemoryStream ms = new MemoryStream(); Stream s = new GZipStream(ms, CompressionMode.Compress); s.Write(bytData, 0, bytData.Length); s.Close(); byte[] compressedData = (byte[])ms.ToArray(); return System.Convert.ToBase64String(compressedData, 0, compressedData.Length); }解压缩字符串 public static string UnzipString(string unCompressedString) ...{ System.Text.StringBuilder uncompressedString = new System.Text.StringBuilder(); byte[] writeData = new byte[4096]; byte[] bytData = System.Convert.FromBase64String(unCompressedString); int totalLength = 0; int size = 0; Stream s = new GZipStream(new MemoryStream(bytData), CompressionMode.Decompress); while (true) ...{ size = s.Read(writeData, 0, writeData.Length); if (size > 0) ...{ totalLength += size; uncompressedString.Append(System.Text.Encoding.UTF8.GetString(writeData, 0, size)); } else ...{ break; } } s.Close(); return uncompressedString.ToString(); }压缩文件 public static bool AddZip(string srcFilename, string zipFileName) ...{ if (!File.Exists(srcFilename)) return false; bool result; FileStream fs = null, output = null; GZipStream zipStream = null; try ...{ fs = new FileStream(srcFilename, FileMode.Open, FileAccess.Read); byte[] buffer = new byte[fs.Length]; fs.Read(buffer, 0, buffer.Length); fs.Close(); if (!File.Exists(zipFileName)) ...{ output = File.Create(zipFileName); zipStream = new GZipStream(output, CompressionMode.Compress); zipStream.Write(buffer, 0, buffer.Length); result = true; } else ...{ result = false; } } catch(Exception) ...{ result = false; } finally ...{ if (zipStream != null) ...{ zipStream.Flush(); zipStream.Close(); } } return result; }本文来自:http://www.goago.net