我应该什么时候在 ZipOutputStream (SharpZipLib)

问题描述

SharpZipLib 是用于处理档案的 Java 库的 .Net 实现。它提供了 ZipOutputStream 类,该类派生自 DeflaterOutputStream 并具有 Finish() 方法。在文档 here 中,Finish() 方法“将在 zip 文件的末尾写入中央目录并刷新流”,并且“在流关闭自动调用”。 所以我想知道如果我无论如何调用 Close() 是否应该调用 Finish() 方法

更新:这个问题应该用另一种方式表述:如果我可以调用 dispose() 或 Close() 来完成这项工作(包括调用 Finish() 方法),我为什么要使用 Finish() 方法

解决方法

来自 ZipOutputStream - Finish() 的文档:

当流关闭时会自动调用。

至于关闭,ZipOutputStream 需要妥善处理。无需调用 Close 方法。

using (var zip = new ZipOutputStream(new FileStream("some path",FileMode.OpenOrCreate)))
{
    // add some files.
   
}