Какой лучший подход для этого? Я близок к правильным?
Код: Выделить всё
IActionResult GetDados ()
{
var list = _itensService.GetDadosXXX().ToList();
var sourceFiles = _itensService.PrepareData(list);
byte[] bytes = null;
using (MemoryStream ms = new MemoryStream())
{
using (ZipArchive zip = new ZipArchive(ms, ZipArchiveMode.Create, true))
{
foreach( SourceFile sf in sourceFile)
{
ZipArchieveEntry zipItem = zip.CreateEntry(sf.Name + "." + sd.Extension)
using (MemoryStream fileMemoryStream = new MemoryStream(sf.FileBytes))
{
using (Stream entryStream = zipItem.Open())
{
fileMemoryStream.CopyTo(entryStream);
}
}
}
}
}
return File(FileBytes, "application/zip", ZipArchiveTest.zip");
}
< /code>
Service: < /p>
public IEnumerable PreparaData(List data)
{
List result = new List();
string archieveName = "Test_";
var mStream = new MemoryStream();
foreach(object in data)
{
var binFormatter = new BinFormatter();
binFormatter.Serialize(mStream, item);
aux++;
}
result.Add(new SourceFile { Name = archieveName, Extension = "csv", FileBytes =
mStream.toArray() });
}
return result;
}
< /code>
sourcefile: < /p>
public class SourceFile
{
public string Name {get;set;}
public string Extension {get;set;}
public Byte[] FileBytes {get;set;}
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... and-zip-it
Мобильная версия