.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