我需要从对象生成多个文件,然后将所有文件缩回。
这就是我得到的,如果需要的话,我无法将
.CSV
文件拆分2中,并且.csv
文件被打破了,我有很多文本错误列表...
最好的方法是什么?我靠近正确的东西吗?Controller:
.csv
服务:
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)
{
ZipArchiveEntry 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");
}
Sourcefile:
public IEnumerable<SourceFile> PreparaData(List<XXXData> data)
{
List<SourceFile> result = new List<SourceFile>();
string archiveName = "Test_";
var mStream = new MemoryStream();
int aux = 1;
foreach(object item in data)
{
var binFormatter = new BinaryFormatter();
binFormatter.Serialize(mStream, item);
aux++;
}
result.Add(new SourceFile { Name = archiveName + aux, Extension = "csv", FileBytes = mStream.toArray() });
return result;
}
让我知道是否还需要其他东西...
public class SourceFile
{
public string Name { get; set; }
public string Extension { get; set; }
public Byte[] FileBytes { get; set; }
}