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

时间: 2024-10-09 04:05:57

.NET 2.0 的压缩功能代码_实用技巧的相关文章

JS实现完美include加载功能代码_实用技巧

js为什么需要include?让我们想想这样1个场景,a.js 需要用到1个公用的common.js,当然你可以在用到a.js的页面使用<script src="common.js">,但假设有5个页面用到了a.js,你是不是要写5遍<script.而且要是以后a.js 又需要引用common2.js,你是不是又的修改5个页面了? 已有js include的一些问题 在写这个之前在网上搜索了些资料,发现以前写的include都存在2个问题,这也是include需要解决

WEB在模态窗体里导出或下载文件功能代码_实用技巧

复制代码 代码如下: <title>我的聊天记录</title> <base target="_self" /> <script src="../JS/jquery-1.4.2.min.js" type="text/javascript"></script> <script> $(document).ready(function() { $('a[href][href!=&q

Asp.net(C#)实现验证码功能代码_实用技巧

新建一个专门用来创建验证码图片的页面ValidateCode.aspx 它的后台cs文件代码如下: PageLoad 复制代码 代码如下: private void Page_Load(object sender, System.EventArgs e) { string checkCode = CreateRandomCode(4); Session["CheckCode"] = checkCode; CreateImage(checkCode); } 其中CreateRandomC

asp.net和ajax实现智能搜索功能代码_实用技巧

第一步,先做好搜索页面 复制代码 代码如下: <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://

asp.net导出EXCEL的功能代码_实用技巧

复制代码 代码如下: //由gridviw导出为Excel public static void ToExcel(System.Web.UI.Control ctl) { HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=Excel.xls"); HttpContext.Current.Response.Charset = "UTF-8

MVC4制作网站教程第二章 部分用户功能实现代码_实用技巧

用户部分要实现的功能有: 序 一.用户  1.1用户注册  1.2用户登录  1.3修改密码  1.4修改资料 要实现这些目的首先新建用户(Model)模型 /// <summary> /// 用户模型 /// </summary> public class User { [Key] public int UserId { get; set; } /// <summary> /// 用户组Id /// </summary> [Display(Name=&qu

MVC4制作网站教程第四章 部分栏目功能实现代码_实用技巧

序 一.用户 二.用户组 三.栏目 3.1添加栏目 3.2浏览栏目 3.3更新栏目 3.4删除栏目 3.5前台栏目浏览 -- 栏目模型: 模型应有一下字段:栏目名称,父栏目id,栏目类型,内容模型,栏目视图,内容视图,链接地址,栏目排序.暂时先想到这么多,先这这么写着.  栏目名称和父栏目id不用说很简单.  栏目类型有三种:普通栏目-就是一般的栏目:单页栏目--是指栏目就是一个页面,像公司介绍,联系地址等:外部链接-是指栏目点一下就跳转到一个链接.  内容模型--是指栏目为普通栏目时,栏目的内

ASP.NET MVC4之js css文件合并功能(3)_实用技巧

MVC4增加了一些新功能,接下来,我们来研究下MVC4中的新增功能,我们在新建一个MVC4项目的时候,会发现在项目下多出了一个App_Start文件夹,文件夹下面有4个文件,BundleConfig.cs,FilterConfig.cs,RouteConfig.cs,WebApiConfig.cs,其中BundleConfig.cs文件就是我们这一节要讲的的文件. 众所周知,浏览器在向服务器发送请求的时候,请求的文件连接数量是有限制的.使用BundleConfig可以将多个文件请求和并成一个请求

使用ASP.NET一般处理程序或WebService返回JSON的实现代码_实用技巧

示例代码下载: http://zsharedcode.googlecode.com/files/JQueryElementDemo.rar 本文中所包含的内容如下:   * 准备  * 一般处理程序/ashx  * WebService/asmx准备 如果希望通过 ashx 或者 asmx 来返回 JSON, 那么需要引用程序集 System.Web.Extensions.dll, 在 .NET 3.5, 4.0 中已经默认包含. 对于 .NET 2.0, 3.0, 需要安装 ASP.NET 2