我有一些檔案需要歸入檔案,所有這些檔案都需要放入檔案庫。
我有一些檔案需要歸入檔案,所有這些檔案都需要放入檔案庫。
using(var memoryStream = new MemoryStream()
{
foreach (var (day, _messages) in messages.GroupBy(x => x.Date).ToDictionary(x => x.Key, x => x.ToList()))
{
using (var archive = new ZipArchive(memoryStream, ZipArchiveMode.Create, true)
{
using (var archiveByDay = new ZipArchive(memoryStream, ZipArchiveMode.Create, true)
{
foreach (var message in _messages)
{
var fileInArchive = archiveByDay.CreateEntry($"{message.FileName}", CompressionLevel.Fastest)。)
var renderer = XmlHelper.SerializeWin1251(message);
using (var entryStream = fileInArchive.Open()
{
using (var fileToCompressStream = new MemoryStream(renderer.ToArray() ) )
{
fileToCompressStream.CopyTo(entryStream)。
}
}
}
}
//如何將archiveByDay添加到檔案中。
}
}
}
在這一點上,我被卡住了
uj5u.com熱心網友回復:
(未經測驗的代碼,基本上只是為了演示背后的想法)
試試下面的方法:
//在回圈的頂部創建父檔案。
//有了給定的代碼,就會有1個檔案在1個檔案中。
//現在它可以是1個檔案中的許多檔案。
//將存檔寫入檔案系統而不是記憶體中。
使用(var archive = new ZipArchive(File. Create("C: est est.zip"), ZipArchiveMode.Create, true)
{
foreach (var (day, _messages) in messages.GroupBy(x => x.Date).ToDictionary(x => x.Key, x => x.ToList())
{
//將memystrem移至內回圈。
using (var memoryStream = new MemoryStream()
{
using (var archiveByDay = new ZipArchive(memoryStream, ZipArchiveMode.Create, true)
{
foreach (var message in _messages)
{
var fileInArchive = archiveByDay.CreateEntry($"{message.FileName}", CompressionLevel.Fastest)。)
var renderer = XmlHelper.SerializeWin1251(message);
using (var entryStream = fileInArchive.Open()
using (var fileToCompressStream = new MemoryStream(renderer.ToArray()))
fileToCompressStream.CopyTo(entryStream)。
}
}
//flush and set position to 0 enable reading the content that got written to the memory stream.
memoryStream.Flush();
memoryStream.Position = 0;
//為父存檔創建條目并將記憶體流寫入其中。
var fileInParentArchive = archive.CreateEntry($"{Guid.NewGuid():D}",CompressionLevel.Fastest)。)
using (var entryStream = fileInParentArchive.Open()
using (var fileToCompressStream = new MemoryStream(memoryStream.ToArray())
fileToCompressStream.CopyTo(entryStream)。
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/307064.html
標籤:
