.NET 2.0 的压缩功能代码

在.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; 

}  

转载请注明:代码学堂>编程开发 > ASP.NET > .NET 2.0 的压缩功能代码

1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!10210454@qq.com
2. 本站不保证所提供所有下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有RB奖励和额外RMB收入!

磊宇堂正在使用的服务器 维护管理由磊宇云服务器提供支持

磊宇堂 » .NET 2.0 的压缩功能代码

提供最优质的资源集合

立即查看 了解详情