zoukankan      html  css  js  c++  java
  • ICSharpCode.SharpZipLib.Zip

    //压缩整个目录下载

    var projectFolder = Request.Params["folder"] != null ? Request.Params["folder"] : string.Empty;
    if (!string.IsNullOrWhiteSpace(projectFolder))
    {
    string path = Util.GetMapPath(string.Format("attarch/html/{0}", projectFolder));
    Response.Clear();
    Response.ContentType = "application/zip";
    Response.AddHeader("Content-Disposition", string.Format("attachment; filename="{0}.zip"", projectFolder));
    Response.BufferOutput = false;

    var buffer = new byte[1024 * 1024];
    using (var zipOutputStream = new ZipOutputStream(Response.OutputStream, 1024 * 1024))
    {
    zipOutputStream.SetLevel(0);
    var directoryInfo = new DirectoryInfo(path);
    foreach (string file in Directory.GetFiles(directoryInfo.FullName, "*.*", SearchOption.AllDirectories))
    {
    string folder = Path.GetDirectoryName(file);
    if (folder.Length > directoryInfo.FullName.Length)
    {
    folder = folder.Substring(directoryInfo.FullName.Length).Trim('\') + @"";
    }
    else
    {
    folder = string.Empty;
    }
    zipOutputStream.PutNextEntry(new ZipEntry(folder + Path.GetFileName(file)));
    using (var fs = System.IO.File.OpenRead(file))
    {
    ICSharpCode.SharpZipLib.Core.StreamUtils.Copy(fs, zipOutputStream, buffer);
    }
    zipOutputStream.Flush();
    Response.Flush();
    }
    zipOutputStream.Finish();
    }
    Response.Flush();
    }
    else
    {
    HandlerMessage("没有下载的数据!");
    }

  • 相关阅读:
    常见的兼容问题
    清除浮动
    简单的容器盒子
    查找并替换中文字符
    遍历对象属性值
    统一服务器和界面的传输格式
    随机生成包含大小写和数字的字符串
    网站翻译功能
    菜鸟安装vue-devtool 工具
    安装虚拟机所遇到的问题
  • 原文地址:https://www.cnblogs.com/fx2008/p/3209893.html
Copyright © 2011-2022 走看看