.NET 2.0 的压缩功能代码

时间:2023-07-14 05:25:22 

在.net 1.1中我们要实现压缩这一功能,一般都是用open source的SharpZipLib 或者调用J#类库。
现在在.net 2.0中增加了压缩功能,名字空间为 using 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; 
}  
标签:.NET,2.0,的压缩功能代码
0
投稿

猜你喜欢

  • 如何从Notes中读取数据?

    2009-11-15 19:57:00
  • 100%点击区的滑动门

    2007-06-14 22:00:00
  • 检测远程文件是否存在

    2009-06-22 13:00:00
  • Access保留字和变量名列表

    2007-10-15 12:43:00
  • 就 CSS3 向 Eric Meyer 请教的 6 个问题

    2008-12-29 13:52:00
  • SQL Server上进行表设计时表的主键设计问题

    2010-06-24 16:10:00
  • 用javascript结合Cookies记录浏览历史

    2008-02-12 12:37:00
  • 介绍讲解MySQL安装下载登录

    2010-10-25 20:34:00
  • 渗透和改变 非洲web 2.0网站Logo

    2008-01-22 13:31:00
  • IE对CSS样式表的限制和解决方案

    2008-04-28 12:27:00
  • 巧用Dreamweaver4文件库更新网站

    2007-02-03 11:31:00
  • asp Http_Referer,Server_Name和Http_Host

    2011-03-29 11:12:00
  • 掀起抛弃IE6的高潮吧

    2009-02-26 12:44:00
  • uniqueidentifier转换成varchar数据类型的sql语句

    2011-09-30 11:17:48
  • asp去除html的函数代码分析附实例说明

    2023-07-02 20:09:18
  • 自动生成sql语句

    2008-05-09 12:42:00
  • Asp性能优化之Response.IsClientConnected属性及其应用示例

    2008-09-18 12:13:00
  • asp小偷程序原理和简单示例

    2007-11-05 17:12:00
  • web开发以HTML为中心

    2008-02-13 08:14:00
  • 分享10个Js的小型库,效果真的很棒

    2009-08-27 15:38:00
  • asp之家 网络编程 m.aspxhome.com