2017-02-19 32 views
2

Во-первых, я хочу создать три файла без фактического создания файла, такого как memystream. Я хочу сжать эти три файла и поместить их в memoeystream. Можно поместить zip-файл в memoeystream, но, как memystream, может ли он содержать три файла без создания файла?C# - Как я могу написать файл в memystream, застегнуть три из этих memistreams и поместить это в другой memystream?

Вот мой код,

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"); 
} 

ответ

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"); 
      } 
+0

Спасибо. я очень ценю это – lcy