c# - 如何将文件写入内存流,压缩其中三个内存流,然后将其放入另一个内存流中?

问题描述 投票:0回答:1

首先,我想创建三个文件,而不实际创建像内存流这样的文件。我想压缩这三个文件并将它们放入 memoeystream 中。 可以将 zip 文件放入 memoeystream,但是像 memorystream 一样,它实际上可以包含三个文件而不创建文件吗?

这是我的代码,

using (MemoryStream ms = new MemoryStream()) {
    using (ZipArchive fileContainer = new ZipArchive(ms, ZipArchiveMode.Create, true)) {
        using(MemoryStream fileMS = new MemoryStream()){ 
        //I want to create file to like memorystream, Not local  
        //file txt1.txt  contain 123456789        
        //file txt2.txt  contain 12345
        //file txt1.txt  contain 6789    
        }            
    }
    return File(ms.ToArray(), System.Net.Mime.MediaTypeNames.Application.Octet, "Result.zip");
}
c# asp.net-mvc zip memorystream c#-ziparchive
1个回答
2
投票

对我来说效果很好

 using (MemoryStream ms = new MemoryStream())
            {
                using (ZipArchive archive = new ZipArchive(ms, ZipArchiveMode.Create, true))
                {
                    for (int i = 0; i < 3; i++)
                    {
                        ZipArchiveEntry readmeEntry = archive.CreateEntry($"text{i}.txt");
                        using (StreamWriter writer = new StreamWriter(readmeEntry.Open()))
                        {
                            writer.WriteLine("text");
                        }
                    }

                }
               return File(ms.ToArray(), System.Net.Mime.MediaTypeNames.Application.Octet, "Result.zip");
            }
© www.soinside.com 2019 - 2024. All rights reserved.