当前位置:主页 > 教程 > 编程教程 >

asp.net实现文件夹及文件压缩,并实现下载
栏目分类:编程教程   发布日期:2017-06-05   浏览次数:

步骤1)先引用 ICSharpCode SharpZipLib dll;2) cs文件引入usingSystem IO;usingSystem Text;usingICSharpCode SharpZipLib Checksums;usingICSharpCode SharpZipLib Zip;usingICSharpCode SharpZipLib GZip;

步骤

1)先引用 ICSharpCode.SharpZipLib.dll;
 

2).cs文件引入

  1. using System.IO; 
  2. using System.Text; 
  3. using ICSharpCode.SharpZipLib.Checksums; 
  4. using ICSharpCode.SharpZipLib.Zip; 
  5. using ICSharpCode.SharpZipLib.GZip; 


3)代码
#region 下列代码为压缩并下载代码     

  1. ZipOutputStream zos = null
  2.       String strBaseDir = ""
  3.  
  4.  
  5.       void dlZipDir(string strPath, string strFileName) 
  6.       { 
  7.           MemoryStream ms = null
  8.           Response.ContentType = "application/octet-stream"
  9.           strFileName = HttpUtility.UrlEncode(strFileName).Replace('+'' '); 
  10.           Response.AddHeader("Content-Disposition""attachment;   filename=" + strFileName + ".zip"); 
  11.           ms = new MemoryStream(); 
  12.           zos = new ZipOutputStream(ms); 
  13.           strBaseDir = strPath + "\\"
  14.           addZipEntry(strBaseDir); 
  15.           zos.Finish(); 
  16.           zos.Close(); 
  17.           Response.Clear(); 
  18.           Response.BinaryWrite(ms.ToArray()); 
  19.           Response.End(); 
  20.       } 
  21.  
  22.       void addZipEntry(string PathStr) 
  23.       { 
  24.           DirectoryInfo di = new DirectoryInfo(PathStr); 
  25.           foreach (DirectoryInfo item in di.GetDirectories()) 
  26.           { 
  27.               addZipEntry(item.FullName); 
  28.           } 
  29.           foreach (FileInfo item in di.GetFiles()) 
  30.           { 
  31.               FileStream fs = File.OpenRead(item.FullName); 
  32.               byte[] buffer = new byte[fs.Length]; 
  33.               fs.Read(buffer, 0, buffer.Length); 
  34.               string strEntryName = item.FullName.Replace(strBaseDir, ""); 
  35.               ZipEntry entry = new ZipEntry(strEntryName); 
  36.               zos.PutNextEntry(entry); 
  37.               zos.Write(buffer, 0, buffer.Length); 
  38.               fs.Close(); 
  39.           } 
  40.       }   
  41.       
  42.  
  43.       PRotected void Button2_Click(object sender, EventArgs e) 
  44.        { 
  45.            string userPath ="D:\\华海实训(qqview.com)各级账号和密码"
  46.         
  47.               dlZipDir(userPath, "华海实训(qqview.com)服务账号"); 
  48.  
  49.        } 
  50.  
  51.       #endregion 

 

相关内容
特效 教程 资源 资讯