用于C#/ .NET的XML压缩/解压缩库

时间:2013-06-16 13:47:33

标签: c# .net xml compression zip

在我的应用程序中,XML包含所有数据,有时甚至超过5-10 MB。程序执行期间多次加载和保存文件。虽然它很快但似乎有时文件在变大时会被破坏。我不知道为什么文件被破坏但在所有情况下文件都是5+ MB,所以我假设更大的XML文件变得越容易腐败。所以,请建议一个XML文件压缩/解压缩库

  1. 最好受欢迎的压缩,如zip / lzw / 7zip / rar等。
  2. 必须快。例如,以最快的压缩级别压缩/解压缩10 MB文件并牺牲空间不应超过100毫秒。
  3. 易于整合。
  4. 我正在使用代码:

    XMLDocument.Load(XML_File.xml)
    XMLDocument.Save(XML_File.xml)
    

    所以我想要这样的东西:

    XMLDocument.Load(Library.Load(XML_File.zip))
    Library.Save(XMLDocument)
    

    我希望这能解决我的上述问题。还有其他选择吗?

    我正在考虑另外一个解决方案:如果您使用过winrar,您会注意到它可以选择在.rar文件中添加恢复记录,这样如果文件被修改,则可以使用恢复记录修复它。我可以在C#中以编程方式在XML文件中使用类似的东西吗?像:

    try{ 
    XMLDocument.Load(Library.Load(XML_File.zip))
    }
    catch{ 
    XMLDocument.Load(Library.Load(Library.File_Recover(XML_File.zip))) 
    }
    

2 个答案:

答案 0 :(得分:2)

我们使用http://xceed.com/Zip_Net_Intro.html的zip库,效果很好。

[我与他们无关,我只是在尝试了几个后购买了他们的产品]

我刚刚进行了搜索,这是免费的:http://dotnetzip.codeplex.com/

答案 1 :(得分:1)

在投放到标准压缩器(例如improve the compression of XML with XWRT preprocessingzlib)之前,您可以显着lzma