• c# 实现文件批量压缩


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

    思路:
    首先是按格式生成网站信息,然后遍历目录找到所有素材,将这些文件打包,并使用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();
    }
  • 相关阅读:
    安装最新版Mysql(APT方式安装)
    Tengine环境安装
    Docker 教程
    Docker Redis
    Ubuntu
    spring boot actuator 如何显示详细信息
    spring boot 加载日志框架后经常出现 LOG_PATH_IS_UNDEFINED 目录怎么办?【未解决】
    Tomcat 目录结构以及基本配置
    Java Hash集合的equals()与hashCode() 方法
    Java Map 集合实现类
  • 原文地址:https://www.cnblogs.com/imlions/p/3959541.html
Copyright © 2020-2023  润新知