2013-05-20 173 views
2

我試圖將大量數據保存到XML中,並且文件以非常大的尺寸結束。我已經搜索了壓縮文件,但是我找到的所有例子都是先寫入文件,然後讀取它壓縮到另一個文件,以大文件和壓縮文件結尾,最接近的我去掉了寫入和讀取的中間步驟,結束使用包含無擴展文件的zip(我可以在記事本中以XML形式打開)。在寫入文件之前壓縮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擴展?

+1

你看起來正確。這似乎是壓縮插播。這不是它在做什麼?順便說一下,如果文件「非常大」,我會用記事本以外的其他文件打開它。 – harpo

+0

@harpo在記事本中打開只是爲了看它是否正確寫入,它是,但文件沒有擴展名 – gbieging

+0

問題是zip文件的內容包含名爲'File'的無擴展名文件。它是否正確? – ja72

回答

1

我想這可能是對基本面的一點誤解。據我所知,GZip是一個壓縮系統,但不是一個歸檔系統。在使用UNIX系統時,它們往往被視爲兩個單獨的東西(而ZIP或RAR壓縮都可以)。存檔將一些文件放在一個文件中,壓縮使文件變小。

你有沒有見過以「filename.tar.gz」下載的Unix軟件包?這通常是命名格式 - 他們把檔案文件(filename.tar)和應用GZip壓縮到它(文件名.tar.gz)

其實,你在技術上通過命名你的文件引起一些混淆「.zip」(這是一種完全不同的,更常用的格式)。如果您想要遵循UNIX傳統,只需將您的文件命名爲「file.xml.gz」即可。如果要將其歸檔,請使用Tar歸檔庫。其他類似7-zip的庫可能有更簡單的壓縮系統,例如,如果你想讓這個文件成爲一個.zip文件,可以被Windows電腦上的人閱讀。

+0

現在唯一的細節是壓縮文件的名稱中有.xml,但它的工作和這並不重要。謝謝 – gbieging