zoukankan      html  css  js  c++  java
  • 多个文件下载打包生成zip格式下载

    这个多个文件下载生成zip格式必须先引用一个ICSharpCode.SharpZipLib.dll。

    代码如下

     //将多个文件打包成压缩文件zip格式下载
            protected void PkgDownload(IEnumerable<string> files, string zipFileName)
            {
                MemoryStream ms = new MemoryStream();  
                byte[] buffer = null;  
                using (ZipFile file = ZipFile.Create(ms))  
                {  
                    file.BeginUpdate();  
                    file.NameTransform = new FileNameTransfom();  
                    foreach (var item in files)  
                    {  
                        file.Add(item);  
                    }  
                    file.CommitUpdate();  
                    buffer = new byte[ms.Length];  
                    ms.Position = 0;  
                    ms.Read(buffer, 0, buffer.Length);  
                }  
                Response.AddHeader("content-disposition", "attachment;filename=" + zipFileName);  
                Response.BinaryWrite(buffer);  
                Response.Flush();  
                Response.End();  
            } 

    需要实现一个类 

     public class FileNameTransfom : ICSharpCode.SharpZipLib.Core.INameTransform
    {
        public string TransformDirectory(string name)
        {
            return null;
        }
        public string TransformFile(string name)
        {
            return Regex.Replace(Path.GetFileName(name), @"d{17}_", "");
        }
    }  

     特别值得注意的是 这里得到的路径是绝对路径

  • 相关阅读:
    STM32 USB应用——VCP
    基础数据类型与字节数组相互转换 BitConvter类
    C# 16进制与字符串、字节数组之间的转换
    C语言函数手册学习
    C串口通信
    C#串口通信
    C Socket通信编程
    C SOCKET编程
    C# SOCKE通信
    socket阻塞与非阻塞,同步与异步、I/O模型
  • 原文地址:https://www.cnblogs.com/superMay/p/5992117.html
Copyright © 2011-2022 走看看