我有一个相当大的XDocument,我正试图将它保存到一个ZipArchive中。下面的代码适用于我,但是由于对我可用的内存量的限制,当OutOfMemoryException调用catalogXDocument.ToString()时,它会失败。
是否有任何方法可以将XDocument保存到ZipArchive而不需要在内存中保存所有内容?
代码:
public Stream Zip(XDocument catalogXDocument)
{
MemoryStream memoryStream = new MemoryStream();
using (var archive = new ZipArchive(memoryStream, ZipArchiveMode.Create, true))
{
var catalogFile = archive.CreateEntry("Catalog.xml");
using (var entryStream = catalogFile.Open())
using (var streamWriter = new StreamWriter(entryStream))
{
streamWriter.Write(catalogXDocument.ToString());
}
}
memoryStream.Seek(0, SeekOrigin.Begin);
return memoryStream;
}发布于 2020-03-12 10:53:13
这样做可能会奏效:
using (var entryStream = catalogFile.Open())
{
catalogXDocument.Save(entryStream);
}https://stackoverflow.com/questions/60652508
复制相似问题