WEB开发网
开发学院WEB开发ASP.NET asp.net实现文件夹及文件压缩,并实现下载 阅读

asp.net实现文件夹及文件压缩,并实现下载

 2009-04-15 17:41:58 来源:WEB开发网   
核心提示: 步骤1)先引用 ICSharpCode.SharpZipLib.dll;2).cs文件引入using System.IO;using System.Text;using ICSharpCode.SharpZipLib.Checksums;using ICSharpCode.SharpZipLib.Zip;using

 步骤

1)先引用 ICSharpCode.SharpZipLib.dll;

2).cs文件引入

using System.IO;
using System.Text;

using ICSharpCode.SharpZipLib.Checksums;
using ICSharpCode.SharpZipLib.Zip;
using ICSharpCode.SharpZipLib.GZip;

3)代码

 #region 下列代码为压缩并下载代码
    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();
      }
    } 
   

  PRotected void Button2_Click(object sender, EventArgs e)
     {
       string userPath ="D:\\华海实训(hohisoft.com)各级账号和密码";
    
        dlZipDir(userPath, "华海实训(hohisoft.com)服务账号");

   }

  #endregion

Tags:asp net 实现

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接