代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Asp.Net
】
ASP.NET生成压缩文件(rar打包)
作者:
Dezai.CN
/ 发布于
2011/8/9
/
762
首先引用ICSharpCode.SharpZipLib.dll,
<div> <pre><span style="color: #808080">下载:http://files.cnblogs.com/KenBlove/ICSharpCode.SharpZipLib.rar ///</span><span style="color: #008000"> </span><span style="color: #808080"><summary></span><span style="color: #008000"> </span><span style="color: #808080">///</span><span style="color: #008000"> 生成压缩文件 </span><span style="color: #808080">///</span><span style="color: #008000"> </span><span style="color: #808080"></summary></span><span style="color: #008000"> </span><span style="color: #808080">///</span><span style="color: #008000"> </span><span style="color: #808080"><param name="strZipPath"></span><span style="color: #008000">生成的zip文件的路径</span><span style="color: #808080"></param></span><span style="color: #008000"> </span><span style="color: #808080">///</span><span style="color: #008000"> </span><span style="color: #808080"><param name="strZipTopDirectoryPath"></span><span style="color: #008000">源文件的上级目录</span><span style="color: #808080"></param></span><span style="color: #008000"> </span><span style="color: #808080">///</span><span style="color: #008000"> </span><span style="color: #808080"><param name="intZipLevel"></span><span style="color: #008000">T压缩等级</span><span style="color: #808080"></param></span><span style="color: #008000"> </span><span style="color: #808080">///</span><span style="color: #008000"> </span><span style="color: #808080"><param name="strPassword"></span><span style="color: #008000">压缩包解压密码</span><span style="color: #808080"></param></span><span style="color: #008000"> </span><span style="color: #808080">///</span><span style="color: #008000"> </span><span style="color: #808080"><param name="filesOrDirectoriesPaths"></span><span style="color: #008000">源文件路径</span><span style="color: #808080"></param></span><span style="color: #008000"> </span><span style="color: #808080">///</span><span style="color: #008000"> </span><span style="color: #808080"><returns></returns></span><span style="color: #808080"></span><span style="color: #000000"> </span><span style="color: #0000ff">private</span><span style="color: #000000"> </span><span style="color: #0000ff">bool</span><span style="color: #000000"> Zip(</span><span style="color: #0000ff">string</span><span style="color: #000000"> strZipPath, </span><span style="color: #0000ff">string</span><span style="color: #000000"> strZipTopDirectoryPath, </span><span style="color: #0000ff">int</span><span style="color: #000000"> intZipLevel, </span><span style="color: #0000ff">string</span><span style="color: #000000"> strPassword, </span><span style="color: #0000ff">string</span><span style="color: #000000">[] filesOrDirectoriesPaths) { </span><span style="color: #0000ff">try</span><span style="color: #000000"> { List</span><span style="color: #000000"><</span><span style="color: #0000ff">string</span><span style="color: #000000">></span><span style="color: #000000"> AllFilesPath </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> List</span><span style="color: #000000"><</span><span style="color: #0000ff">string</span><span style="color: #000000">></span><span style="color: #000000">(); </span><span style="color: #0000ff">if</span><span style="color: #000000"> (filesOrDirectoriesPaths.Length </span><span style="color: #000000">></span><span style="color: #000000"> </span><span style="color: #800080">0</span><span style="color: #000000">) </span><span style="color: #008000">//</span><span style="color: #008000"> get all files path</span><span style="color: #008000"></span><span style="color: #000000"> { </span><span style="color: #0000ff">for</span><span style="color: #000000"> (</span><span style="color: #0000ff">int</span><span style="color: #000000"> i </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #800080">0</span><span style="color: #000000">; i </span><span style="color: #000000"><</span><span style="color: #000000"> filesOrDirectoriesPaths.Length; i</span><span style="color: #000000">++</span><span style="color: #000000">) { </span><span style="color: #0000ff">if</span><span style="color: #000000"> (File.Exists(filesOrDirectoriesPaths[i])) { AllFilesPath.Add(filesOrDirectoriesPaths[i]); } </span><span style="color: #0000ff">else</span><span style="color: #000000"> </span><span style="color: #0000ff">if</span><span style="color: #000000"> (Directory.Exists(filesOrDirectoriesPaths[i])) { GetDirectoryFiles(filesOrDirectoriesPaths[i], AllFilesPath); } } } </span><span style="color: #0000ff">if</span><span style="color: #000000"> (AllFilesPath.Count </span><span style="color: #000000">></span><span style="color: #000000"> </span><span style="color: #800080">0</span><span style="color: #000000">) { ZipOutputStream zipOutputStream </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> ZipOutputStream(File.Create(strZipPath)); zipOutputStream.SetLevel(intZipLevel); zipOutputStream.Password </span><span style="color: #000000">=</span><span style="color: #000000"> strPassword; </span><span style="color: #0000ff">for</span><span style="color: #000000"> (</span><span style="color: #0000ff">int</span><span style="color: #000000"> i </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #800080">0</span><span style="color: #000000">; i </span><span style="color: #000000"><</span><span style="color: #000000"> AllFilesPath.Count; i</span><span style="color: #000000">++</span><span style="color: #000000">) { </span><span style="color: #0000ff">string</span><span style="color: #000000"> strFile </span><span style="color: #000000">=</span><span style="color: #000000"> AllFilesPath[i].ToString(); </span><span style="color: #0000ff">try</span><span style="color: #000000"> { </span><span style="color: #0000ff">if</span><span style="color: #000000"> (strFile.Substring(strFile.Length </span><span style="color: #000000">-</span><span style="color: #000000"> </span><span style="color: #800080">1</span><span style="color: #000000">) </span><span style="color: #000000">==</span><span style="color: #000000"> </span><span style="color: #800000">""</span><span style="color: #000000">) </span><span style="color: #008000">//</span><span style="color: #008000">folder</span><span style="color: #008000"></span><span style="color: #000000"> { </span><span style="color: #0000ff">string</span><span style="color: #000000"> strFileName </span><span style="color: #000000">=</span><span style="color: #000000"> strFile.Replace(strZipTopDirectoryPath, </span><span style="color: #800000">""</span><span style="color: #000000">); </span><span style="color: #0000ff">if</span><span style="color: #000000"> (strFileName.StartsWith(</span><span style="color: #800000">""</span><span style="color: #000000">)) { strFileName </span><span style="color: #000000">=</span><span style="color: #000000"> strFileName.Substring(</span><span style="color: #800080">1</span><span style="color: #000000">); } ZipEntry entry </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> ZipEntry(strFileName); entry.DateTime </span><span style="color: #000000">=</span><span style="color: #000000"> DateTime.Now; zipOutputStream.PutNextEntry(entry); } </span><span style="color: #0000ff">else</span><span style="color: #000000"> </span><span style="color: #008000">//</span><span style="color: #008000">file</span><span style="color: #008000"></span><span style="color: #000000"> { FileStream fs </span><span style="color: #000000">=</span><span style="color: #000000"> File.OpenRead(strFile); </span><span style="color: #0000ff">byte</span><span style="color: #000000">[] buffer </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> </span><span style="color: #0000ff">byte</span><span style="color: #000000">[fs.Length]; fs.Read(buffer, </span><span style="color: #800080">0</span><span style="color: #000000">, buffer.Length); </span><span style="color: #0000ff">string</span><span style="color: #000000"> strFileName </span><span style="color: #000000">=</span><span style="color: #000000"> strFile.Replace(strZipTopDirectoryPath, </span><span style="color: #800000">""</span><span style="color: #000000">); </span><span style="color: #0000ff">if</span><span style="color: #000000"> (strFileName.StartsWith(</span><span style="color: #800000">""</span><span style="color: #000000">)) { strFileName </span><span style="color: #000000">=</span><span style="color: #000000"> strFileName.Substring(</span><span style="color: #800080">0</span><span style="color: #000000">); } ZipEntry entry </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> ZipEntry(strFileName); entry.DateTime </span><span style="color: #000000">=</span><span style="color: #000000"> DateTime.Now; zipOutputStream.PutNextEntry(entry); zipOutputStream.Write(buffer, </span><span style="color: #800080">0</span><span style="color: #000000">, buffer.Length); fs.Close(); fs.Dispose(); } } </span><span style="color: #0000ff">catch</span><span style="color: #000000"> { </span><span style="color: #0000ff">continue</span><span style="color: #000000">; } } zipOutputStream.Finish(); zipOutputStream.Close(); </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #0000ff">true</span><span style="color: #000000">; } </span><span style="color: #0000ff">else</span><span style="color: #000000"> { </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #0000ff">false</span><span style="color: #000000">; } } </span><span style="color: #0000ff">catch</span><span style="color: #000000"> { </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #0000ff">false</span><span style="color: #000000">; } } </span><span style="color: #808080">///</span><span style="color: #008000"> </span><span style="color: #808080"><summary></span><span style="color: #008000"> </span><span style="color: #808080">///</span><span style="color: #008000"> Gets the directory files. </span><span style="color: #808080">///</span><span style="color: #008000"> </span><span style="color: #808080"></summary></span><span style="color: #008000"> </span><span style="color: #808080">///</span><span style="color: #008000"> </span><span style="color: #808080"><param name="strParentDirectoryPath"></span><span style="color: #008000">源文件路径</span><span style="color: #808080"></param></span><span style="color: #008000"> </span><span style="color: #808080">///</span><span style="color: #008000"> </span><span style="color: #808080"><param name="AllFilesPath"></span><span style="color: #008000">所有文件路径</span><span style="color: #808080"></param></span><span style="color: #808080"></span><span style="color: #000000"> </span><span style="color: #0000ff">private</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> GetDirectoryFiles(</span><span style="color: #0000ff">string</span><span style="color: #000000"> strParentDirectoryPath, List</span><span style="color: #000000"><</span><span style="color: #0000ff">string</span><span style="color: #000000">></span><span style="color: #000000"> AllFilesPath) { </span><span style="color: #0000ff">string</span><span style="color: #000000">[] files </span><span style="color: #000000">=</span><span style="color: #000000"> Directory.GetFiles(strParentDirectoryPath); </span><span style="color: #0000ff">for</span><span style="color: #000000"> (</span><span style="color: #0000ff">int</span><span style="color: #000000"> i </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #800080">0</span><span style="color: #000000">; i </span><span style="color: #000000"><</span><span style="color: #000000"> files.Length; i</span><span style="color: #000000">++</span><span style="color: #000000">) { AllFilesPath.Add(files[i]); } </span><span style="color: #0000ff">string</span><span style="color: #000000">[] directorys </span><span style="color: #000000">=</span><span style="color: #000000"> Directory.GetDirectories(strParentDirectoryPath); </span><span style="color: #0000ff">for</span><span style="color: #000000"> (</span><span style="color: #0000ff">int</span><span style="color: #000000"> i </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #800080">0</span><span style="color: #000000">; i </span><span style="color: #000000"><</span><span style="color: #000000"> directorys.Length; i</span><span style="color: #000000">++</span><span style="color: #000000">) { GetDirectoryFiles(directorys[i], AllFilesPath); } </span><span style="color: #0000ff">if</span><span style="color: #000000"> (files.Length </span><span style="color: #000000">==</span><span style="color: #000000"> </span><span style="color: #800080">0</span><span style="color: #000000"> </span><span style="color: #000000">&&</span><span style="color: #000000"> directorys.Length </span><span style="color: #000000">==</span><span style="color: #000000"> </span><span style="color: #800080">0</span><span style="color: #000000">) </span><span style="color: #008000">//</span><span style="color: #008000">empty folder</span><span style="color: #008000"></span><span style="color: #000000"> { AllFilesPath.Add(strParentDirectoryPath); } }调用</span><span style="color: #0000ff">string</span><span style="color: #000000"> strZipPath </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #800000">@"</span><span style="color: #800000">D:\ConsultSystem\mgr\user.zip</span><span style="color: #800000">"</span><span style="color: #000000">; </span><span style="color: #0000ff">string</span><span style="color: #000000"> strZipTopDirectoryPath </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #800000">@"</span><span style="color: #800000">D:\ConsultSystem\mgr\</span><span style="color: #800000">"</span><span style="color: #000000">; </span><span style="color: #0000ff">int</span><span style="color: #000000"> intZipLevel </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #800080">6</span><span style="color: #000000">; </span><span style="color: #0000ff">string</span><span style="color: #000000"> strPassword </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #800000">""</span><span style="color: #000000">; </span><span style="color: #0000ff">string</span><span style="color: #000000">[] filesOrDirectoriesPaths </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> </span><span style="color: #0000ff">string</span><span style="color: #000000">[] { </span><span style="color: #800000">@"</span><span style="color: #800000">D:\ConsultSystem\mgr\user.txt</span><span style="color: #800000">"</span><span style="color: #000000"> }; Zip(strZipPath, strZipTopDirectoryPath, intZipLevel, strPassword, filesOrDirectoriesPaths);</span></pre> </div>
试试其它关键字
压缩文件
同语言下
.
gzip压缩
.
实现http多线程断点续传下载文件
.
实现多线程断点续传下载大文件
.
生成字符串的 CheckSum
.
根据 UserAgent 获取浏览器的类型和版本
.
根据 Agent 判断是否是智能手机
.
隐藏手机号中间四位为*方法
.
合并图片(二维码和其他图片合并)
.
ASP.NET CORE中判断是否移动端打开网页
.
ASP.NET(C#)实现页面计时(定时)自动跳转
可能有用的
.
实现测量程序运行时间及cpu使用时间
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
Dezai.CN
贡献的其它代码
(
4037
)
.
多线程Socket服务器模块
.
生成随机密码
.
清除浮动样式
.
弹出窗口居中
.
抓取url的函数
.
使用base HTTP验证
.
div模拟iframe嵌入效果
.
通过header转向的方法
.
Session操作类
.
执行sqlite输入插入操作后获得自动编号的ID
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3