源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

.NET 2.0 的压缩功能代码

  • 时间:2020-03-09 02:34 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:.NET 2.0 的压缩功能代码
在.net 1.1中我们要实现压缩这一功能,一般都是用open source的SharpZipLib 或者调用J#类库。 现在在.net 2.0中增加了压缩功能,名字空间为 using System.IO.Compression; 以下是使用示例: 压缩字符串
[u]复制代码[/u] 代码如下:
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);  } 
解压缩字符串
[u]复制代码[/u] 代码如下:
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();  } 
压缩文件
[u]复制代码[/u] 代码如下:
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;  }  
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部