首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将XDocument保存到zip文件而不耗尽内存

问将XDocument保存到zip文件而不耗尽内存
EN

Stack Overflow用户
提问于 2020-03-12 10:48:15
回答 1查看 225关注 0票数 1

我有一个相当大的XDocument,我正试图将它保存到一个ZipArchive中。下面的代码适用于我,但是由于对我可用的内存量的限制,当OutOfMemoryException调用catalogXDocument.ToString()时,它会失败。

是否有任何方法可以将XDocument保存到ZipArchive而不需要在内存中保存所有内容?

代码:

代码语言:javascript
复制
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;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-12 10:53:13

这样做可能会奏效:

代码语言:javascript
复制
using (var entryStream = catalogFile.Open())
{
    catalogXDocument.Save(entryStream);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60652508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档