ZipArchive.CreateAsync Methode

Definition

Initialisiert und gibt eine neue Instanz des ZipArchive angegebenen Datenstroms im angegebenen Modus zurück und gibt an, ob der Datenstrom geöffnet bleiben soll, mit einer optionalen Codierung und einem optionalen Abbruchtoken.

public static System.Threading.Tasks.Task<System.IO.Compression.ZipArchive> CreateAsync(System.IO.Stream stream, System.IO.Compression.ZipArchiveMode mode, bool leaveOpen, System.Text.Encoding? entryNameEncoding, System.Threading.CancellationToken cancellationToken = default);
static member CreateAsync : System.IO.Stream * System.IO.Compression.ZipArchiveMode * bool * System.Text.Encoding * System.Threading.CancellationToken -> System.Threading.Tasks.Task<System.IO.Compression.ZipArchive>
Public Shared Function CreateAsync (stream As Stream, mode As ZipArchiveMode, leaveOpen As Boolean, entryNameEncoding As Encoding, Optional cancellationToken As CancellationToken = Nothing) As Task(Of ZipArchive)

Parameter

stream
Stream

Der Eingabe- oder Ausgabedatenstrom.

mode
ZipArchiveMode

Einer der Enumerationswerte, der angibt, ob der Datenstrom Lese-, Schreib- und Suchvorgänge unterstützt.

leaveOpen
Boolean

true den Datenstrom beim Entsorgen der ZipArchive offen zu lassen, andernfalls false.

entryNameEncoding
Encoding

Die Codierung, die beim Lesen oder Schreiben von Eintragsnamen und Kommentaren in dieser ZipArchive verwendet werden soll.

cancellationToken
CancellationToken

Das optionale Abbruchtoken, das überwacht werden soll.

Gibt zurück

Ausnahmen

Der Datenstrom ist bereits geschlossen.

-oder-

mode ist nicht mit den Funktionen des Datenstroms kompatibel.

Der Datenstrom ist null.

mode einen ungültigen Wert angegeben.

Der Inhalt des Datenstroms konnte nicht als ZIP-Datei interpretiert werden.

-oder-

mode ist aktualisiert, und ein Eintrag fehlt im Archiv oder ist beschädigt und kann nicht gelesen werden.

-oder-

mode ist aktualisiert, und ein Eintrag ist zu groß, um in den Arbeitsspeicher zu passen.

Eine andere Unicode-Codierung als UTF-8 wurde für entryNameEncodingangegeben.

Hinweise

Es wird davon abgeraten, einen anderen Wert als entryNameEncoding einen anderen Wert null anzugeben. Dies kann jedoch für die Interoperabilität mit ZIP-Archivtools und -Bibliotheken erforderlich sein, die utf-8-Codierung für Eintragsnamen nicht ordnungsgemäß unterstützen.

Dieser Wert wird wie folgt verwendet:

  • Lesen (Öffnen) ZIP-Archivdateien:
    • Wenn entryNameEncoding nicht angegeben (== null):
      • Verwenden Sie für Einträge, bei denen das Sprachcodierungskennzeichnungs-Flag (EFS) im allgemeinen Bit-Flag des lokalen Dateiheaders nicht festgelegt ist, die aktuelle Standardcodeseite (Encoding.Default) des Systems, um den Eintragsnamen und den Kommentar zu decodieren.
      • Verwenden Sie für Einträge, bei denen die Sprachcodierungskennzeichnung (LANGUAGE Encoding Flag, EFS) im allgemeinen Bit-Flag des lokalen Dateiheaders festgelegt ist , UTF-8 (Encoding.UTF8) zum Decodieren des Eintragsnamens und des Kommentars.
    • Wenn entryNameEncoding angegeben (!= null):
      • Verwenden Sie für Einträge, bei denen das Sprachcodierungskennzeichnungs-Flag (EFS) im allgemeinen Bit-Flag des lokalen Dateiheaders nicht festgelegt ist, den angegebenen entryNameEncoding Code, um den Eintragsnamen und den Kommentar zu decodieren.
      • Verwenden Sie für Einträge, bei denen die Sprachcodierungskennzeichnung (LANGUAGE Encoding Flag, EFS) im allgemeinen Bit-Flag des lokalen Dateiheaders festgelegt ist , UTF-8 (Encoding.UTF8) zum Decodieren des Eintragsnamens und des Kommentars.
  • Schreiben (Speichern) ZIP-Archivdateien:
    • Wenn entryNameEncoding nicht angegeben (== null):
      • Für Eintragsnamen und Kommentare, die Zeichen außerhalb des ASCII-Bereichs enthalten, wird das Sprachcodierungsflagge (EFS) im allgemeinen Bit-Flag des lokalen Dateiheaders festgelegt, und UTF-8 (Encoding.UTF8) wird verwendet, um den Eintragsnamen und den Kommentar in Byte zu codieren.
      • Für Eintragsnamen und Kommentare, die keine Zeichen außerhalb des ASCII-Bereichs enthalten, wird das Sprachcodierungsflagge (EFS) nicht im allgemeinen Bit-Flag des lokalen Dateiheaders festgelegt, und die aktuelle Systemstandardcodeseite (Encoding.Default) wird verwendet, um die Eintragsnamen und Kommentare in Byte zu codieren.
    • Wenn entryNameEncoding angegeben (!= null):
      • Der angegebene entryNameEncoding Wert wird immer verwendet, um die Eintragsnamen und Kommentare in Byte zu codieren.
      • Die Sprachcodierungskennzeichnung (LANGUAGE Encoding Flag, EFS) im allgemeinen Bit-Flag des lokalen Dateiheaders wird nur festgelegt, wenn die angegebene entryNameEncoding Codierung eine UTF-8-Codierung ist.
  • Gilt für: