写文件前压缩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扩展名?
我认为这可能是对基本原理的一点误解。据我所知,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