2017-02-27 196 views
5

在我的應用程序中,我有一個使用System.IO.Compression.ZipArchive的zip存檔操作的類。 現在我想將檔案的條目保存到文件中。我怎樣才能做到這一點?我知道我可以一個Stream與歸檔但對我來說存檔創建W/O流相關聯,我不能更改代碼:將ZipArchive保存到文件

var archive = ZipFile.Open(fileName, ZipArchiveMode.Create); 
// add entries 
// how can I save it to file now? 
+1

https://msdn.microsoft.com/en-us/library/hh485720(v=vs.110).aspx – Hackerman

+0

請檢查這個答案: [stackoverflow](http://stackoverflow.com/a/12670368/6340841) –

+0

感謝球員的答案,但不是我所需要的。正如我所說我使用'System.IO.Compression.ZipArchive',我不能改變它的另一個庫。 – folibis

回答

3

您已經在「保存到文件」,一個表示通過fileName

要確保一切都寫和沖洗,使用using

using (var archive = ZipFile.Open(fileName, ZipArchiveMode.Create)) 
{ 
    // add entries 
    .... 

} // here it is saved and closed 
+0

謝謝@Henk Holterman,你是對的,我注意到這段代碼創建了一個文件。不幸的是,雖然我添加了多個ZipArchiveEntry項,但它是空的。 – folibis

+0

然後出現其他問題,創建一個[mcve]。 –

+0

沒關係,我找到了一種方法來做到這一點。在我的代碼中,我沒有使用「使用」,所以它看起來該文件只是保持打開狀態。我在我的類析構函數中添加了'archive.Dispose()',現在它工作正常,按預期創建了存檔。 – folibis