Asp.net 2.0 C#实现压缩/解压功能
Asp.net 2.0 C#实现压缩/解压功能 (示例代码下载)
(三).代码
1. 压缩类
2/// 压缩类
3/// </summary>
4public class ZipClass
5{
6 public static void ZipFile(string FileToZip, string ZipedFile, int CompressionLevel, int BlockSize)
7 {
8 //如果文件没有找到,则报错
9 if (!System.IO.File.Exists(FileToZip))
10 {
11 throw new System.IO.FileNotFoundException("指定要压缩的文件: " + FileToZip + " 不存在!");
12 }
13
14 System.IO.FileStream StreamToZip = new System.IO.FileStream(FileToZip, System.IO.FileMode.Open, System.IO.FileAccess.Read);
15 System.IO.FileStream ZipFile = System.IO.File.Create(ZipedFile);
16 ZipOutputStream ZipStream = new ZipOutputStream(ZipFile);
17 ZipEntry ZipEntry = new ZipEntry("ZippedFile");
18 ZipStream.PutNextEntry(ZipEntry);
19 ZipStream.SetLevel(CompressionLevel);
20 byte[] buffer = new byte[BlockSize];
21 System.Int32 size = StreamToZip.Read(buffer, 0, buffer.Length);
22 ZipStream.Write(buffer, 0, size);
23 try
24 {
25 while (size < StreamToZip.Length)
26 {
27 int sizeRead = StreamToZip.Read(buffer, 0, buffer.Length);
28 ZipStream.Write(buffer, 0, sizeRead);
29 size += sizeRead;
30 }
31 }
32 catch (System.Exception ex)
33 {
34 throw ex;
35 }
36 ZipStream.Finish();
37 ZipStream.Close();
38 StreamToZip.Close();
39 }
40
41 /**//// <summary>
42 /// 压缩目录
43 /// </summary>
44 /// <param name="args">数组(数组[0]: 要压缩的目录; 数组[1]: 压缩的文件名)</param>
45 public static void ZipFileDictory(string[] args)
46 {
47 string[] filenames = Directory.GetFiles(args[0]);
48
49 Crc32 crc = new Crc32();
50 ZipOutputStream s = new ZipOutputStream(File.Create(args[1]));
51 s.SetLevel(6);
52 foreach (string file in filenames)
53 {
54 //打开压缩文件
55 FileStream fs = File.OpenRead(file);
56
57 byte[] buffer = new byte[fs.Length];
58 fs.Read(buffer, 0, buffer.Length);
59 ZipEntry entry = new ZipEntry(file);
60
61 entry.DateTime = DateTime.Now;
62
63 entry.Size = fs.Length;
64 fs.Close();
65
66 crc.Reset();
67 crc.Update(buffer);
68
69 entry.Crc = crc.Value;
70
71 s.PutNextEntry(entry);
72
73 s.Write(buffer, 0, buffer.Length);
74
75 }
76
77 s.Finish();
78 s.Close();
79 }
80
81 /**//// <summary>
82 /// 压缩文件
83 /// </summary>
84 /// <param name="FileToZip">要进行压缩的文件名</param>
85 /// <param name="ZipedFile">压缩后生成的压缩文件名</param>
86 public static void ZipFile(string FileToZip, string ZipedFile)
87 {
88 //如果文件没有找到,则报错
89 if (!File.Exists(FileToZip))
90 {
91 throw new System.IO.FileNotFoundException("指定要压缩的文件: " + FileToZip + " 不存在!");
92 }
93 FileStream fs = File.OpenRead(FileToZip);
94 byte[] buffer = new byte[fs.Length];
95 fs.Read(buffer, 0, buffer.Length);
96 fs.Close();
97
98 FileStream ZipFile = File.Create(ZipedFile);
99 ZipOutputStream ZipStream = new ZipOutputStream(ZipFile);
100 ZipEntry ZipEntry = new ZipEntry("ZippedFile");
101 ZipStream.PutNextEntry(ZipEntry);
102 ZipStream.SetLevel(6);
103
104 ZipStream.Write(buffer, 0, buffer.Length);
105 ZipStream.Finish();
106 ZipStream.Close();
107 }
108}
109
110/**//// <summary>
111/// 解压类
112/// </summary>
113public class UnZipClass
114{
115 /**//// <summary>
116 /// 解压功能(解压压缩文件到指定目录)
117 /// </summary>
118 /// <param name="args">待解压的文件</param>
119 /// <param name="args">指定解压目标目录</param>
120 public static void UnZip(string[] args)
121 {
122 ZipInputStream s = new ZipInputStream(File.OpenRead(@args[0].Trim()));
123 ZipEntry theEntry;
124 string directoryName = Path.GetDirectoryName(@args[1].Trim());
125
126 if (!Directory.Exists(@args[1].Trim()))
127 {
128 Directory.CreateDirectory(directoryName);
129 }
130 while ((theEntry = s.GetNextEntry()) != null)
131 {
132 ;
133 string fileName = Path.GetFileName(theEntry.Name);
134
135 if (fileName != String.Empty)
136 {
137 FileStream streamWriter = File.Create(@args[1].Trim() + fileName);
138
139 int size = 2048;
140 byte[] data = new byte[2048];
141 while (true)
142 {
143 size = s.Read(data, 0, data.Length);
144 if (size > 0)
145 {
146 streamWriter.Write(data, 0, size);
147 }
148 else
149 {
150 break;
151 }
152 }
153
154 streamWriter.Close();
155 }
156 }
157 s.Close();
158 }
159
2. 前台页面代码
2 <form id="form1" runat="server">
3 <div>
4 <asp:Label ID="Label1" runat="server" BackColor="#C0C0FF" Font-Size="XX-Large"
5 Height="44px" Text="压缩文件/文件夹示例" Width="366px"></asp:Label>
6 <asp:Panel ID="Panel1" runat="server" Height="1px" Width="369px" BackColor="#FFFFC0">
7 <table width="100%" height="100%">
8 <tr>
9 <td style="width: 3px" valign="top">
10 <asp:Label ID="lbDisplay" runat="server" Text="压缩目录(from/to):" Width="153px"></asp:Label><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
11 <br />
12 <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
13 <br />
14 <asp:Button ID="btZipDictory" runat="server" OnClick="btZipDictory_Click" Text="压缩目录" /><br />
15 </td>
16 <td style="width: 4px" valign="middle">
17 <asp:Label ID="Label2" runat="server" Text="解压目录(from/to):" Width="154px"></asp:Label>
18 <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
19 <br />
20 <asp:TextBox ID="TextBox4" runat="server"></asp:TextBox>
21 <br />
22 <asp:Button ID="btUnZipDictory" runat="server" Text="解压目录" OnClick="btUnZipDictory_Click" /><br />
23 </td>
24 </tr>
25 <tr>
26 <td style="width: 3px; height: 150px" valign="top">
27 <asp:Label ID="Label3" runat="server" Text="压缩文件(from/to):" Width="153px"></asp:Label>
28 <asp:TextBox ID="TextBox5" runat="server"></asp:TextBox>
29 <br />
30 <asp:TextBox ID="TextBox6" runat="server"></asp:TextBox>
31 <br />
32 <asp:Button ID="btZipFile" runat="server" Text="压缩文件" OnClick="btZipFile_Click" /><br />
33 </td>
34 <td style="width: 4px; height: 150px" valign="top">
35 <asp:Label ID="Label4" runat="server" Text="解压文件(from/to):" Width="154px"></asp:Label>
36 <asp:TextBox ID="TextBox7" runat="server"></asp:TextBox>
37 <br />
38 <asp:TextBox ID="TextBox8" runat="server"></asp:TextBox>
39 <br />
40 <asp:Button ID="btUnZipFile" runat="server" Text="解压文件" OnClick="btUnZipFile_Click" /><br />
41 </td>
42
43 </tr>
44
45 </table>
46 <asp:Label ID="lbMessage" runat="server" Width="368px"></asp:Label><br />
47 <br />
48 </asp:Panel>
49
50 </div>
51 </form>
52</body>
53
3. 后台页面代码
2{
3 protected void Page_Load(object sender, EventArgs e)
4 {
5
6 }
7 protected void btZipDictory_Click(object sender, EventArgs e)
8 {
9 string[] FilePathS = new string[2];
10 FilePathS[0] = TextBox1.Text.Trim(); //待压缩的文件目录
11 FilePathS[1] = TextBox2.Text.Trim(); //生成的目标文件
12 ZipClass.ZipFileDictory(FilePathS);
13 }
14 protected void btUnZipDictory_Click(object sender, EventArgs e)
15 {
16 string[] FilePathS = new string[2];
17 FilePathS[0] = TextBox3.Text.Trim(); //待解压的文件
18 FilePathS[1] = TextBox4.Text.Trim(); //解压目标存放目录
19 UnZipClass.UnZip(FilePathS);
20 }
21 protected void btZipFile_Click(object sender, EventArgs e)
22 {
23 string[] FilePathS = new string[2];
24 FilePathS[0] = TextBox5.Text.Trim(); //待压缩的文件
25 FilePathS[1] = TextBox6.Text.Trim(); //生成的压缩文件名
26 ZipClass.ZipFile(FilePathS[0], FilePathS[1]);
27
28 }
29 protected void btUnZipFile_Click(object sender, EventArgs e)
30 {
31 string[] FilePathS = new string[2];
32 FilePathS[0] = TextBox7.Text.Trim(); //待解压的文件
33 FilePathS[1] = TextBox8.Text.Trim(); //解压目标存放目录
34 UnZipClass.UnZip(FilePathS);
35 }
36}
37
http://www.cnblogs.com/Files/ChengKing/ZIP.rar
Asp.net 2.0 C#实现压缩/解压功能相关推荐
- 用.NET 2.0压缩解压功能处理大型数据
摘要 如果你的应用程序从未使用过压缩,那么你很幸运.而对于另一部分使用压缩的开发人员来说,好消息是,.NET 2.0如今提供了两个类来处理压缩和解压问题.本文正是想讨论何时以及如何使用这些有用的工具. ...
- php php_zip.dll,PHP如何开启自带的ZipArchive类,实现压缩解压功能
Windows环境: 打开官网列表后需要查找适合自己的PHP版本和系统的zip,我的PHP版本是5.5的,这里我选择的版本号是1.13.5 image.png 下载完后解压,把里面的php_zip.d ...
- 压缩/解压(ICSharpCode.SharpZipLib 类库)
我在 AgileIM 的开发中解决视频/音频会话功能时,发现传输的音/视频数据量太大,通过一些格式转换(如BMP->JPG.或 帧间预测编码)可以适当减少带宽的需求,但是仍然不能满足需求,于是我 ...
- 【压缩解压】tar打包打包压缩 zip压缩,打包压缩大全,归纳整理琐碎的文件于一体,颜色高亮指导,一目了然
1 打包 + 解包 功能 tar 打包 tar -cvf dstFile.tar srcFile 解包 tar -xvf dstFile.tar 2 压缩 + 解压 功能 gzip zip rar 压 ...
- 【分享】AspxZip v2.0 在线压缩解压ZIP文档
下载地址: http://download.csdn.net/detail/rrrfff/5756977 当前版本:2.0.20140609 AspxZip v2.0 特点: 1.能够在支持 ASP. ...
- 最新版freetextbox(版本3.1.6)在asp.net 2.0中使用简解
最新版freetextbox(版本3.1.6)在asp.net 2.0中使用简解 2008-10-14 12:21 简介:对于FreeTextBox(版本3.1.6)在ASP.Net 2.0中使用,只 ...
- 最新版FreeTextBox(版本3.1.6)在ASP.Net 2.0中使用简解(提供博客园本地下载)
来源:cleocn.com 最新版FreeTextBox(版本3.1.6)在ASP.Net 2.0中使用简解(提供博客园本地下载) 简介:对于FreeTextBox(版本3.1.6)在ASP.Net ...
- WebAPI性能优化之压缩解压
有时候为了提升WebAPI的性能,减少响应时间,我们会使用压缩和解压,而现在大多数客户端浏览器都提供了内置的解压支持.在WebAPI请求的资源越大时,使用压缩对性能提升的效果越明显,而当请求的资源很小 ...
- 一章: CentOS6.5 网络配置、修改主机名、添加硬盘、压缩——解压方法、VNC—server配置
1,配IP ,修改网络配置文件 配置网卡 # vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 HWADDR=00:50:56:83: ...
最新文章
- MXNet动手学深度学习笔记:卷积计算
- 是时候对XSLT说“Goodbye”了吗?
- Java面试题及答案2020,mysql时间类型以及获取当前时间
- LeetCode Linked List Cycle II(floyd cycle)
- Python脚本后台运行的五种方式
- Linux各发行版本之间的比较
- 为什么我的论文没人引用?
- 解读云原生下的可观察性发展方向
- Jmeter笔记(2)插件下载与安装
- LeetCode 面试题 链表中倒数第K个点
- javascript设计模式研究学习-设计模式类别
- CSS入门学习笔记+案例
- M3U8下载,直播源下载,FLASH下载(二)-ffmpeg安装手册(linux)
- 用英雄联盟的方式讲解JavaScript设计模式
- 使用python内置函数进行常规API接口调用
- python简单实现天猫手机评论标签提取--自然语言处理
- 如何在WordPress中显示链接的实时预览
- Scratch所有积木
- 计算机开启时提示键盘错误,进入BIOS自检找不到键盘提示Keyboard error怎么办
- arduino开发板包默认安装在哪里?安装目录分析