我正在尝试将大量数据保存到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扩展名?
答案 0 :(得分:1)
我认为这可能是对基本面的一点误解。据我所知,GZip是一个压缩系统,但不是一个归档系统。使用UNIX系统时,它们往往被视为两个独立的东西(而ZIP或RAR压缩同时执行这两个操作)。归档将大量文件放在一个文件中,压缩使该文件变小。
您是否见过以“filename.tar.gz”下载的Unix软件包?这通常是命名格式 - 他们采用了一个存档文件(filename.tar)并对其应用了GZip压缩(filename.tar.gz)
实际上,通过命名文件“.zip”(这是一种完全不同的,更常用的格式),你在技术上会引起一些混乱。如果你想遵循UNIX传统,只需将文件命名为“file.xml.gz”。如果要将其存档,请使用Tar存档库。其他库(如7-zip)可能具有更简单的压缩系统,可以为您同时执行这两个操作,例如,如果您希望此文件是.zip,则可以由Windows计算机上的人轻松阅读。
答案 1 :(得分:0)
我认为你必须先写一个临时文件。看看