ZipArchiveMode 列舉

定義

指定與 ZIP 封存項目互動的值。

public enum class ZipArchiveMode
public enum ZipArchiveMode
type ZipArchiveMode = 
Public Enum ZipArchiveMode
繼承
ZipArchiveMode

欄位

Create 1

僅允許建立新的封存項目。

Read 0

僅允許讀取封存項目。

Update 2

封存項目允許讀取及寫入作業。

備註

當您將模式設定為 [讀取] 時,基礎檔案或資料流程必須支援讀取,但不需要支援搜尋。 如果基礎檔案或資料流程支援搜尋,則會在要求檔案時從封存讀取這些檔案。 如果基礎檔案或資料流程不支援搜尋,整個封存會保留在記憶體中。

當您將模式設定為 [建立] 時,基礎檔案或資料流程必須支援寫入,但不需要支援搜尋。 封存中的每個專案只能開啟一次以供寫入。 如果您建立單一專案,只要資料可供使用,就會將資料寫入基礎資料流程或檔案。 如果您建立多個專案,例如藉由呼叫 CreateFromDirectory 方法,資料會在建立所有專案之後寫入基礎資料流程或檔案。

當您將模式設定為 [更新] 時,基礎檔案或資料流程必須支援讀取、寫入和搜尋。 整個封存的內容會保留在記憶體中,而且在封存處置之前,不會將資料寫入基礎檔案或資料流程。

下列方法包含名為 mode 的參數,可讓您指定封存模式:

範例

下列範例示範如何在建立 ZipArchive 物件時指定 ZipArchiveMode 值。

using System;
using System.IO;
using System.IO.Compression;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            using (FileStream zipToOpen = new FileStream(@"c:\users\exampleuser\release.zip", FileMode.Open))
            {
                using (ZipArchive archive = new ZipArchive(zipToOpen, ZipArchiveMode.Update))
                {
                    ZipArchiveEntry readmeEntry = archive.CreateEntry("Readme.txt");
                    using (StreamWriter writer = new StreamWriter(readmeEntry.Open()))
                    {
                            writer.WriteLine("Information about this package.");
                            writer.WriteLine("========================");
                    }
                }
            }
        }
    }
}
Imports System.IO
Imports System.IO.Compression

Module Module1

    Sub Main()
        Using zipToOpen As FileStream = New FileStream("c:\users\exampleuser\release.zip", FileMode.Open)
            Using archive As ZipArchive = New ZipArchive(zipToOpen, ZipArchiveMode.Update)
                Dim readmeEntry As ZipArchiveEntry = archive.CreateEntry("Readme.txt")
                Using writer As StreamWriter = New StreamWriter(readmeEntry.Open())
                    writer.WriteLine("Information about this package.")
                    writer.WriteLine("========================")
                End Using
            End Using
        End Using
    End Sub

End Module

適用於