簡體   English   中英

寫入文件之前壓縮XML

[英]Compressing XML before writing file

我正在嘗試將大量數據保存到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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM