• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

c#实现文件批量压缩

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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

思路:
首先是按格式生成网站信息,然后遍历目录找到所有素材,将这些文件打包,并使用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();
}

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#学习——CLR异常处理原理发布时间:2022-07-14
下一篇:
C#之WindowsFormApplication与attribute发布时间:2022-07-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap