直接上代码供大家参考。。。

  前端页面就是一个下载的Button。。  

  1. <body>
  2. <form id="form1" runat="server">
  3. <div>
  4. <asp:button ID="btn_down" runat="server" text="下载" onclick="btn_down_Click" />
  5. </div>
  6. </form>
  7. </body>

  后台代码:

  1. protected void btn_down_Click(object sender, EventArgs e)
  2. {
  3. var name = Server.MapPath("huage");
  4. //if (!Directory.Exists(name))
  5. // throw new FileNotFoundException("")
  6. var zipName = "test";
  7. DownZip(name, zipName,);
  8. }
  9. private void DownZip(string dirname, string zipfile, int level = , string password = "")
  10. {
  11. MemoryStream ms = new MemoryStream();//支持存储区为内存的流
  12. ZipOutputStream zos = new ZipOutputStream(ms);
  13. if (password != "")
  14. zos.Password = password;
  15.  
  16. zos.SetLevel(level);
  17. AddZipEntry(dirname, zos, dirname);
  18. zos.Finish();
  19. zos.Close();
  20. Response.Clear();
  21. Response.ContentType = "application/octet-stream";
  22. Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlDecode(zipfile,System.Text.Encoding.UTF8) + ".zip");
  23. Response.BinaryWrite(ms.ToArray());
  24. ms.Close();
  25. Response.Flush();
  26. Response.End();
  27. }
  28. private void AddZipEntry(string strPath, ZipOutputStream zos, string baseDirName)
  29. {
  30. DirectoryInfo dir = new DirectoryInfo(strPath);
  31. foreach (FileSystemInfo item in dir.GetFileSystemInfos())
  32. {
  33. if ((item.Attributes & FileAttributes.Directory) == FileAttributes.Directory)
  34. {
  35. AddZipEntry(item.FullName, zos, baseDirName);
  36. }
  37. else
  38. {
  39. FileInfo f_item = (FileInfo)item;
  40. using (FileStream fs = f_item.OpenRead())
  41. {
  42. byte[] buffer = new byte[(int)fs.Length];
  43. fs.Read(buffer, , buffer.Length);
  44. ZipEntry entry = new ZipEntry(f_item.FullName.Replace(baseDirName, ""));
  45. zos.PutNextEntry(entry);
  46. zos.Write(buffer, , buffer.Length);
  47. }
  48. }
  49. }
  50. }

压缩的代码的没看懂的话,可以参考我的文章:

C#使用ICSharpCode.SharpZipLib.dll进行文件的压缩与解压

C#将文件压缩成一个文件流,供前端下载的更多相关文章

  1. Java 多文件压缩成一个文件工具类

    简单修改来自博客园勇闯天涯zfc的博客 一.内容 ①使用 Java 将多个文件打包压缩成一个压缩文件: ②主要使用 java.io 下的类 二.源代码:ZIPUtil .java import jav ...

  2. 使用 Java 将多个文件压缩成一个压缩文件

    使用 Java 将多个文件压缩成一个压缩文件 一.内容 ①使用 Java 将多个文件打包压缩成一个压缩文件: ②主要使用 java.io 下的类 二.源代码:ZipMultiFile.java pac ...

  3. os模块、文件压缩 、匹配文件后缀名:fnmatch glob

    一.os模块 os模块:是python是系统交互的模块 import os # 0平台信息的一些操作 python是夸平台的,所以内部兼容了不同的平台 1. os.name # 操作系统 nt是win ...

  4. Java—将文件压缩为zip文件

    import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import ...

  5. 开源作品-PHP写的JS和CSS文件压缩利器(单文件绿色版)-SuMinify_PHP_1_5

    前言: 网站项目需要引用外部文件以减小加载流量,而且第一次加载外部资源文件后,其他同域名的页面如果引用相同的地址,可以利用浏览器缓存直接读取本地缓存资源文件,而不需要每个页面都下载相同的外部资源文件. ...

  6. windows下多个文件合并成一个文件

    如果你拿到的是一堆文件,那么你想把它合并成一个文件来使用,那么按下面的步骤,轻轻松松就可以搞定. 第一步:把所有要合并的文件放到同一个文件下面 第二步:在CMD里面进入到你的文件目录 第三步:输入如下 ...

  7. PHP调用Linux的命令行执行文件压缩命令&&创建文件夹修改权限

    一开始,我和普通青年一样,想到用PHP内置的 ZipArchive纠结的是环境上没安装zip扩展,想采用用PHP调用Linux的命令行 ,执行压缩命令,感兴趣的朋友可以了解下,希望本文对你有所帮助 前 ...

  8. 将二级目录下的文件合并成一个文件的Python小脚本

    这个小程序的目的是将二级目录下的文件全部合并成一个文件(其实几级目录都可以,只要做少许改动) #coding:utf8 import sys, os def process(path): new_fi ...

  9. python实现将文件夹内所有txt文件合并成一个文件

    新建一个文件夹命名为yuliao,把所有txt文件放进去就ok啦!注意路径中‘/’,windows下路径不是这样. #coding=utf-8  import os #获取目标文件夹的路径 filed ...

随机推荐

  1. opencv 图像各方向旋转

    1. 简介 计算机图形学中的应用非常广泛的变换是一种称为仿射变换的特殊变换,在仿射变换中的基本变换包括平移.旋转.缩放.剪切这几种.本文以及接下来的几篇文章重点介绍一下关于旋转的变换,包括二维旋转变换 ...

  2. Django - 基于orm实现用户增删改查

    1.基于orm实现用户新增 user_info.html中,增加代码: views.py中,在原user_info函数中,增加判断代码: 备注:最后一句,可以通过return redirect 实现, ...

  3. Linux之iptables(一、防火墙的概念)

    防火墙的概念 一.安全技术 入侵检测与管理系统(Intrusion Detection Systems):特点是不阻断任何网络访问,量化.定位来自内外网络的威胁情况,主要以提供报告和事后监督为主,提供 ...

  4. The Forth Week

    1.复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限. cp -r /etc/skell /home/tuser1 ; ...

  5. C# 派生类的XmlSerializer序列化XML

    近段对XML 序列化进行处理,用XmlSerializer这个挺好用的. 但是对于派生类对象的XML的生成总会报错.因为同一个节点名称,不能反射为不同的对象.这个在网上找了好久,都说要利用反射来处理. ...

  6. Ubuntu | Flask + Gunicorn + Nginx 部署服务器环境

    现在我们手里有一个准备发布的项目,那么如何将他上传到你的服务器,并让外网访问呢? 前提: 1. 安装了Python环境 apt-get install python-dev 2. 安装Flask pi ...

  7. vue+better-scroll 下拉刷新,上拉加载更多

    better-scroll 来做下拉刷新和 上拉加载 特别方便.  安装好vue脚手架和better-scroll 之后 直接复制粘贴就可以看到效果了 <template> <div ...

  8. B - Oulipo

    The French author Georges Perec (1936�C1982) once wrote a book, La disparition, without the letter ' ...

  9. java 执行可执行文件时提示“could not find or load main class ”的问题

  10. Hibernate学习笔记(八) — 懒载入与抓取策略

    懒载入(Load On Demand)是一种独特而又强大的数据获取方法,它可以在用户滚动页面的时候自己主动获取很多其它的数据,而新得到的数据不会影响原有数据的显示,同一时候最大程度上降低server端 ...