码迷,mamicode.com
首页 > 其他好文 > 详细

c# 实现文件批量压缩

时间:2014-09-06 17:19:23      阅读:309      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   io   使用   ar   strong   

今天改一个网站的功能,网站提供一些微信的素材,每个页面对应一套素材,如果会员一张一张下载,那么网站交互性就有点太差了。所以修改的内容就是提供一个按钮,点击按钮将这套图片和网站信息进行打包下载。

思路:
首先是按格式生成网站信息,然后遍历目录找到所有素材,将这些文件打包,并使用response输出。
文件打包的实现是使用外部开源库DotNetZip

代码实现:
新建一个asp.net空白项目,新建一个页面,引用DotNetZip库下的Ionic.Zip.dll
在页面中引用Ionic.Zip命名空间

using Ionic.Zip;

批量压缩载的代码:
在Page_Load中加入

if (!Page.IsPostBack)
{
    Response.Clear();
    Response.BufferOutput = false;
    string[] files = Directory.GetFiles(Server.MapPath("img/"));
    //网站文件生成一个readme.txt文件
    String readmeText = String.Format("README.TXT" +Environment.NewLine+
                                "官方地址:http://shandongit.com"
                                );
    Response.ContentType = "application/zip";
    Response.AddHeader("content-disposition", "inline; filename=\"" + String.Format("archive-{0}.zip", DateTime.Now.ToString("yyyy-MMM-dd-HHmmss")) + "\"");
    //批量压缩操作
    using (ZipFile zip = new ZipFile())
    {
        // the Readme.txt file will not be password-protected.
        zip.AddEntry("Readme.txt", readmeText, Encoding.Default);
        zip.Password = "shandongit.com";
        zip.Encryption = EncryptionAlgorithm.WinZipAes256;

        // filesToInclude is a string[] or List<String>
        zip.AddFiles(files, "files");

        zip.Save(Response.OutputStream);

    }
    Response.Close();
}

c# 实现文件批量压缩

标签:style   blog   http   color   os   io   使用   ar   strong   

原文地址:http://www.cnblogs.com/imlions/p/3959541.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!