Я пытаюсь сжать два текстовых файла в zip-файл. Это как мой публичный метод выглядит следующим образом:Как сжать несколько файлов в zip-файле
public ActionResult Index()
{
byte[] file1 = System.IO.File.ReadAllBytes(@"C:\file1.txt");
byte[] file2 = System.IO.File.ReadAllBytes(@"C:\file2.txt");
Dictionary<string, byte[]> fileList = new Dictionary<string, byte[]>();
fileList.Add("file1.txt", file1);
fileList.Add("file2.txt", file2);
CompressToZip("zip.zip", fileList);
return View();
}
Это как мой метод сжатия выглядит следующим образом:
private void CompressToZip(string fileName, Dictionary<string, byte[]> fileList)
{
using (var memoryStream = new MemoryStream())
{
foreach (var file in fileList)
{
using (var archive = new ZipArchive(memoryStream, ZipArchiveMode.Create, true))
{
var demoFile = archive.CreateEntry(file.Key);
using (var entryStream = demoFile.Open())
using (var b = new BinaryWriter(entryStream))
{
b.Write(file.Value);
}
}
}
using (var fileStream = new FileStream(fileName, FileMode.Create))
{
memoryStream.Seek(0, SeekOrigin.Begin);
memoryStream.CopyTo(fileStream);
}
}
}
При таком подходе, папка на молнии отлично создан. Однако проблема в том, что я получаю только один файл внутри zip-папки (только второй файл будет создан внутри папки zip). Ошибок не найдено.
Вопрос: Как сжать оба текстовых файла в папку zip?
Благодарим вас за продвинутый!
он работал отлично. Большое спасибо! – Dayan