C#循环下载多个文件(把多个文件压缩成一个文件可以一次性下载)ICSharpCode.SharpZipLib.Zip 批量下载 内存存储不占硬盘

本文主要是介绍C#循环下载多个文件(把多个文件压缩成一个文件可以一次性下载)ICSharpCode.SharpZipLib.Zip 批量下载 内存存储不占硬盘,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

使用插件ICSharpCode.SharpZipLib.Zip

https://download.csdn.net/download/sunwork888/16038504

 

  public void BatchQueryPolicyDownloadUrlZip(System.Web.HttpResponseBase Response, List<Ins> oList){using (System.IO.MemoryStream stream = new System.IO.MemoryStream()){using (ZipOutputStream zipStream = new ZipOutputStream(stream))//ZipOutputStream zipStream = new ZipOutputStream(File.Create("F:\\111\\111.zip"));{zipStream.SetLevel(6); //压缩级别0-9  ICSharpCode.SharpZipLib.Checksums.Crc32 crc = new ICSharpCode.SharpZipLib.Checksums.Crc32();foreach (var item in oList){var fileName = item.PolicyNo + item.InsuredName;var fileURL = item.PolicyDownloadUrl;System.Net.WebClient wc = new System.Net.WebClient();using (System.IO.MemoryStream streamUrl = new System.IO.MemoryStream(wc.DownloadData(fileURL))){byte[] buffer = streamUrl.ToArray();//建立压缩实体ZipEntry entry = new ZipEntry(fileName);//原文件名entry.DateTime = DateTime.Now;//空间大小crc.Reset();crc.Update(buffer);entry.Crc = crc.Value;zipStream.PutNextEntry(entry);zipStream.Write(buffer, 0, buffer.Length); }}zipStream.Finish();stream.Position = 0;Response.Buffer = true;Response.AddHeader("Content-Disposition", $"attachment; filename=附件_{DateTime.Now.ToString("yyMMddHHmmssfff")}.zip");Response.ContentType = "application/octet-stream";Response.BinaryWrite(stream.ToArray());zipStream.Close();stream.Close();GC.Collect();GC.Collect(1);}}}

 

这篇关于C#循环下载多个文件(把多个文件压缩成一个文件可以一次性下载)ICSharpCode.SharpZipLib.Zip 批量下载 内存存储不占硬盘的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/732599

相关文章

关于Java内存访问重排序的研究

《关于Java内存访问重排序的研究》文章主要介绍了重排序现象及其在多线程编程中的影响,包括内存可见性问题和Java内存模型中对重排序的规则... 目录什么是重排序重排序图解重排序实验as-if-serial语义内存访问重排序与内存可见性内存访问重排序与Java内存模型重排序示意表内存屏障内存屏障示意表Int

C#实现文件读写到SQLite数据库

《C#实现文件读写到SQLite数据库》这篇文章主要为大家详细介绍了使用C#将文件读写到SQLite数据库的几种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录1. 使用 BLOB 存储文件2. 存储文件路径3. 分块存储文件《文件读写到SQLite数据库China编程的方法》博客中,介绍了文

使用JavaScript操作本地存储

《使用JavaScript操作本地存储》这篇文章主要为大家详细介绍了JavaScript中操作本地存储的相关知识,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录本地存储:localStorage 和 sessionStorage基本使用方法1. localStorage

使用C#如何创建人名或其他物体随机分组

《使用C#如何创建人名或其他物体随机分组》文章描述了一个随机分配人员到多个团队的代码示例,包括将人员列表随机化并根据组数分配到不同组,最后按组号排序显示结果... 目录C#创建人名或其他物体随机分组此示例使用以下代码将人员分配到组代码首先将lstPeople ListBox总结C#创建人名或其他物体随机分组

在C#中合并和解析相对路径方式

《在C#中合并和解析相对路径方式》Path类提供了几个用于操作文件路径的静态方法,其中包括Combine方法和GetFullPath方法,Combine方法将两个路径合并在一起,但不会解析包含相对元素... 目录C#合并和解析相对路径System.IO.Path类幸运的是总结C#合并和解析相对路径对于 C

C#中字符串分割的多种方式

《C#中字符串分割的多种方式》在C#编程语言中,字符串处理是日常开发中不可或缺的一部分,字符串分割是处理文本数据时常用的操作,它允许我们将一个长字符串分解成多个子字符串,本文给大家介绍了C#中字符串分... 目录1. 使用 string.Split2. 使用正则表达式 (Regex.Split)3. 使用

JAVA中while循环的使用与注意事项

《JAVA中while循环的使用与注意事项》:本文主要介绍while循环在编程中的应用,包括其基本结构、语句示例、适用场景以及注意事项,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录while循环1. 什么是while循环2. while循环的语句3.while循环的适用场景以及优势4. 注意

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

使用Python制作一个PDF批量加密工具

《使用Python制作一个PDF批量加密工具》PDF批量加密‌是一种保护PDF文件安全性的方法,通过为多个PDF文件设置相同的密码,防止未经授权的用户访问这些文件,下面我们来看看如何使用Python制... 目录1.简介2.运行效果3.相关源码1.简介一个python写的PDF批量加密工具。PDF批量加密

C# Task Cancellation使用总结

《C#TaskCancellation使用总结》本文主要介绍了在使用CancellationTokenSource取消任务时的行为,以及如何使用Task的ContinueWith方法来处理任务的延... 目录C# Task Cancellation总结1、调用cancellationTokenSource.