写文件前压缩XML

本文关键字:XML 压缩 文件 | 更新日期: 2023-09-27 18:14:22

我试图将大量数据保存到XML中,文件最终大小非常大。我搜索过压缩,但我找到的所有例子都是先写文件,然后读取压缩到另一个文件,以大文件和压缩文件结束,我最接近的是删除写入然后读取的中间步骤,最终得到一个包含无扩展文件的zip(我可以在记事本中打开XML)。

这是我现在的文件:

XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
using (FileStream outFile = File.Create(@"File.zip"))
{
    using (GZipStream Compress = new GZipStream(outFile, CompressionMode.Compress))
    {
        using (XmlWriter writer = XmlWriter.Create(Compress, settings))
        {
            //write the XML
        }
    }
}

如何使zip中的文件具有XML扩展名?

写文件前压缩XML

我认为这可能是对基本原理的一点误解。据我所知,GZip是一个压缩系统,而不是存档系统。在使用UNIX系统时,它们往往被视为两个独立的东西(而ZIP或RAR压缩可以同时做到这两点)。存档将许多文件放在一个文件中,压缩使该文件更小。

你见过以"filename.tar.gz"下载的Unix包吗?这就是通常的命名格式——他们取一个存档文件(filename.tar)并对其应用GZip压缩(filename.tar.gz)

实际上,将文件命名为"。zip"(这是一种完全不同的、更常用的格式)在技术上造成了一点混乱。如果您想遵循UNIX传统,只需将文件命名为"file.xml.gz"。如果要对其进行归档,请使用Tar归档库。其他库,如7-zip的可能有更简单的压缩系统,可以为你做这两件事,例如,如果你想这个文件是一个。zip,很容易被Windows电脑上的人阅读。

我认为你必须先写一个临时文件。看一看

DotNetPerls