Python语言技术文档

微信小程序技术文档

php语言技术文档

jsp语言技术文档

asp语言技术文档

C#/.NET语言技术文档

html5/css技术文档

javascript

点击排行

您现在的位置:首页 > 技术文档 > C#/.NET技巧

ASP.NET 2.0 的压缩功能代码

来源:中文源码网    浏览:366 次    日期:2024-04-27 07:19:11
【下载文档:  ASP.NET 2.0 的压缩功能代码.txt 】


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

相关内容