利用SharpZipLib实现实时zip压缩下载整个目录
2005-06-30 11:36
501 查看
<%@ Import namespace="ICSharpCode.SharpZipLib.Zip" %>
<%@ Import Namespace="System.IO" %>
<script language="c#" runat="server">
ZipOutputStream zos=null;
String strBaseDir="";
void dlZipDir(string strPath,string strFileName){
MemoryStream ms =null;
Response.ContentType = "application/octet-stream";
strFileName=HttpUtility.UrlEncode(strFileName).Replace('+',' ');
Response.AddHeader("Content-Disposition", "attachment; filename=" + strFileName+".zip");
ms = new MemoryStream();
zos = new ZipOutputStream(ms);
strBaseDir=strPath+"/";
addZipEntry(strBaseDir);
zos.Finish();
zos.Close();
Response.Clear();
Response.BinaryWrite(ms.ToArray());
Response.End();
}
void addZipEntry(string PathStr){
DirectoryInfo di= new DirectoryInfo(PathStr);
foreach(DirectoryInfo item in di.GetDirectories()){
addZipEntry(item.FullName);
}
foreach(FileInfo item in di.GetFiles()){
FileStream fs = File.OpenRead(item.FullName);
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
string strEntryName=item.FullName.Replace(strBaseDir,"");
ZipEntry entry = new ZipEntry(strEntryName);
zos.PutNextEntry(entry);
zos.Write(buffer, 0, buffer.Length);
fs.Close();
}
}
void Page_Load(){
dlZipDir(Server.MapPath("."),"test");
}
</script>
<%@ Import Namespace="System.IO" %>
<script language="c#" runat="server">
ZipOutputStream zos=null;
String strBaseDir="";
void dlZipDir(string strPath,string strFileName){
MemoryStream ms =null;
Response.ContentType = "application/octet-stream";
strFileName=HttpUtility.UrlEncode(strFileName).Replace('+',' ');
Response.AddHeader("Content-Disposition", "attachment; filename=" + strFileName+".zip");
ms = new MemoryStream();
zos = new ZipOutputStream(ms);
strBaseDir=strPath+"/";
addZipEntry(strBaseDir);
zos.Finish();
zos.Close();
Response.Clear();
Response.BinaryWrite(ms.ToArray());
Response.End();
}
void addZipEntry(string PathStr){
DirectoryInfo di= new DirectoryInfo(PathStr);
foreach(DirectoryInfo item in di.GetDirectories()){
addZipEntry(item.FullName);
}
foreach(FileInfo item in di.GetFiles()){
FileStream fs = File.OpenRead(item.FullName);
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
string strEntryName=item.FullName.Replace(strBaseDir,"");
ZipEntry entry = new ZipEntry(strEntryName);
zos.PutNextEntry(entry);
zos.Write(buffer, 0, buffer.Length);
fs.Close();
}
}
void Page_Load(){
dlZipDir(Server.MapPath("."),"test");
}
</script>
相关文章推荐
- 利用SharpZipLib实现实时zip压缩下载整个目录
- 利用SharpZipLib实现实时zip压缩下载整个目录
- 利用SharpZipLib实现压缩多个文件或整个目录
- SharpZipLib实现压缩多个文件或整个目录
- (原创)python zipfile实现压缩整个目录和子目录
- 利用WinInet和多线程实现实时显示的下载进度条
- 利用Java实现压缩与解压缩(zip、gzip)支持中文路径
- C++调用windowsAPI实现目录zip压缩
- java web 实现把文件夹下的所有文件压缩成zip并实现下载(原文链接)http://blog.csdn.net/sxdtzhaoxinguo/article/details/20550537)
- Java实现Zip压缩/解压缩目录中的所有文件
- Java实现zip压缩多个文件下载
- 用Java实现ZIP压缩文件和目录程序代码
- Android 利用Java实现压缩与解压缩(zip、gzip)支持中文路径
- JAVA实现将一个目录里的文件压缩到zip文件里
- 利用Java实现压缩与解压缩(zip、gzip)支持中文路径
- xshell5 中利用sftp 上传下载整个目录
- C#利用SharpZipLib解压或压缩文件(支持多层目录递归压缩)
- 利用Java实现压缩与解压缩(zip、gzip)支持中文路径
- C#实时zip压缩和解压移动设备版Xceed Real-Time Zip for .NET CF下载及详细介绍
- (转)[Android实例] eoe & 友盟教程大赛 - 利用ant来实现zip/tar的压缩与解压