使用ASP.. NET如何从字符串数组创建zip文件

本文关键字:数组 创建 zip 文件 字符串 ASP NET 使用 | 更新日期: 2023-09-27 18:03:37

我使用的是ASP。. NET和我更喜欢VB作为语言,但我应该能够翻译c#为我的需要。

我有一个字符串数组,我想发送到浏览器作为用户保存的单个文件。在搜索互联网时,向浏览器发送多个文件最常见的解决方案是将它们压缩,然后发送一个压缩文件。

为了达到这个目的,我需要学习一些我不知道的东西;

1)什么工具/方法(最好是内置在ASP中)?. NET在IIS7上运行)我可以使用它来创建一个zip文件流发送到浏览器吗?

2)我如何愚弄zip工具认为它是从内存中的字符串获得多个文件?假设我需要创建文件流,但是我如何告诉方法文件名是什么,等等?

如果有一个例子做的事情基本上类似于我需要可用,那将是伟大的。给我指一指。

谢谢你的帮助

使用ASP.. NET如何从字符串数组创建zip文件

方法可以是:

  1. 将字符串转换为流
  2. 将该流中的数据添加到zip文件
  3. 将zip文件写入响应流

代码示例如下:

ZipFile zipFile = new ZipFile();
int fileNumber = 1;
foreach(string str in strArray)
{
    // convert string to stream
    byte[] byteArray = Encoding.UTF8.GetBytes(contents);
    MemoryStream stream = new MemoryStream(byteArray);
    stream.Seek(0, SeekOrigin.Begin);
    //add the string into zip file with a name
    zipFile.AddEntry("String" + fileNumber.ToString() + ".txt", "", stream);
}
Response.ClearContent();
Response.ClearHeaders();
Response.AppendHeader("content-disposition", "attachment; filename=strings.zip");
zipFile.Save(Response.OutputStream);
zipFile.Dispose();