ZipFile.OpenAsync Methode

Definition

Überlädt

Name Beschreibung
OpenAsync(String, ZipArchiveMode, CancellationToken)

Öffnet asynchron einen im ZipArchive angegebenen archiveFileName Modus angegebenen ZipArchiveMode Wert.

OpenAsync(String, ZipArchiveMode, Encoding, CancellationToken)

Öffnet asynchron einen im ZipArchive angegebenen archiveFileName Modus angegebenen ZipArchiveMode Wert.

OpenAsync(String, ZipArchiveMode, CancellationToken)

Quelle:
ZipFile.Create.Async.cs
Quelle:
ZipFile.Create.Async.cs

Öffnet asynchron einen im ZipArchive angegebenen archiveFileName Modus angegebenen ZipArchiveMode Wert.

public static System.Threading.Tasks.Task<System.IO.Compression.ZipArchive> OpenAsync(string archiveFileName, System.IO.Compression.ZipArchiveMode mode, System.Threading.CancellationToken cancellationToken = default);
static member OpenAsync : string * System.IO.Compression.ZipArchiveMode * System.Threading.CancellationToken -> System.Threading.Tasks.Task<System.IO.Compression.ZipArchive>
Public Shared Function OpenAsync (archiveFileName As String, mode As ZipArchiveMode, Optional cancellationToken As CancellationToken = Nothing) As Task(Of ZipArchive)

Parameter

archiveFileName
String

Der Pfad im Dateisystem, in dem das Archiv geöffnet werden soll.

mode
ZipArchiveMode

Einer der Enumerationswerte, der die Aktionen angibt, die für die Einträge im geöffneten Archiv zulässig sind.

cancellationToken
CancellationToken

Das Abbruchtoken, das auf Abbruchanforderungen überwacht werden soll.

Gibt zurück

Ausnahmen

archiveFileName ist eine leere Zeichenfolge, enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen, wie von InvalidPathChars definiert.

archiveFileName ist null.

archiveFileName überschreitet die vom System definierte maximale Länge. Auf Windows-basierten Plattformen müssen Pfade beispielsweise kleiner als 248 Zeichen sein, und Dateinamen müssen kleiner als 260 Zeichen sein.

Der angegebene archiveFileName Wert ist ungültig (z. B. auf einem nicht zugeordneten Laufwerk).

Beim Öffnen der Datei ist ein nicht angegebener E/A-Fehler aufgetreten.

archiveFileName ein Verzeichnis angegeben.

-oder-

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

mode einen ungültigen Wert angegeben.

Die angegebene archiveFileName Datei wurde nicht gefunden.

archiveFileName ist in einem ungültigen Format vorhanden.

Die angegebene Datei konnte nicht als ZIP-Datei interpretiert werden.

-oder-

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

-oder-

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

Ein asynchroner Vorgang wird abgebrochen.

Hinweise

Für archiveFileName:

Der Pfad darf relative oder absolute Pfadinformationen angeben. Relative Pfadinformationen werden relativ zum aktuellen Arbeitsverzeichnis interpretiert.

Für mode:

Wenn Read angegeben, wird die Datei mit System.IO.FileMode.Open, und löst eine FileNotFoundException , wenn die Datei nicht vorhanden ist.

Wenn Create angegeben, wird die Datei mit System.IO.FileMode.CreateNew, geöffnet und löst eine System.IO.IOException , wenn die Datei bereits vorhanden ist.

Wenn Update angegeben, wird die Datei mit System.IO.FileMode.OpenOrCreate.

Wenn die Datei vorhanden ist und eine ZIP-Datei ist, werden ihre Einträge barrierefrei und können geändert werden, und neue Einträge können erstellt werden.

Wenn die Datei vorhanden ist und keine ZIP-Datei ist, wird ein InvalidDataException Fehler ausgelöst.

Wenn die Datei vorhanden ist und leer ist oder nicht vorhanden ist, wird eine neue ZIP-Datei erstellt.

Das Erstellen einer ZIP-Datei mit dem Create Modus ist beim Erstellen einer neuen ZIP-Datei effizienter.

Gilt für:

OpenAsync(String, ZipArchiveMode, Encoding, CancellationToken)

Quelle:
ZipFile.Create.Async.cs
Quelle:
ZipFile.Create.Async.cs

Öffnet asynchron einen im ZipArchive angegebenen archiveFileName Modus angegebenen ZipArchiveMode Wert.

public static System.Threading.Tasks.Task<System.IO.Compression.ZipArchive> OpenAsync(string archiveFileName, System.IO.Compression.ZipArchiveMode mode, System.Text.Encoding? entryNameEncoding, System.Threading.CancellationToken cancellationToken = default);
static member OpenAsync : string * System.IO.Compression.ZipArchiveMode * System.Text.Encoding * System.Threading.CancellationToken -> System.Threading.Tasks.Task<System.IO.Compression.ZipArchive>
Public Shared Function OpenAsync (archiveFileName As String, mode As ZipArchiveMode, entryNameEncoding As Encoding, Optional cancellationToken As CancellationToken = Nothing) As Task(Of ZipArchive)

Parameter

archiveFileName
String

Der Pfad im Dateisystem, in dem das Archiv geöffnet werden soll.

mode
ZipArchiveMode

Einer der Enumerationswerte, der die Aktionen angibt, die für die Einträge im geöffneten Archiv zulässig sind.

entryNameEncoding
Encoding

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

cancellationToken
CancellationToken

Das Abbruchtoken, das auf Abbruchanforderungen überwacht werden soll.

Gibt zurück

Ausnahmen

archiveFileName ist eine leere Zeichenfolge, enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen, wie von InvalidPathChars definiert.

archiveFileName ist null.

archiveFileName überschreitet die vom System definierte maximale Länge. Auf Windows-basierten Plattformen müssen Pfade beispielsweise kleiner als 248 Zeichen sein, und Dateinamen müssen kleiner als 260 Zeichen sein.

archiveFileName ist ungültig( z. B. auf einem nicht zugeordneten Laufwerk).

Beim Öffnen der Datei ist ein nicht angegebener E/A-Fehler aufgetreten.

archiveFileName ein Verzeichnis angegeben.

-oder-

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

mode einen ungültigen Wert angegeben.

Die angegebene archiveFileName Datei wurde nicht gefunden.

archiveFileName ist in einem ungültigen Format vorhanden.

Die angegebene Datei konnte nicht als ZIP-Datei interpretiert werden.

-oder-

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

-oder-

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

Ein asynchroner Vorgang wird abgebrochen.

Hinweise

Für archiveFileName:

Der Pfad darf relative oder absolute Pfadinformationen angeben. Relative Pfadinformationen werden relativ zum aktuellen Arbeitsverzeichnis interpretiert.

Für mode:

Wenn Read angegeben, wird die Datei mit System.IO.FileMode.Open, und löst eine FileNotFoundException , wenn die Datei nicht vorhanden ist.

Wenn Create angegeben, wird die Datei mit System.IO.FileMode.CreateNew, geöffnet und löst eine System.IO.IOException , wenn die Datei bereits vorhanden ist.

Wenn Update angegeben, wird die Datei mit System.IO.FileMode.OpenOrCreate.

Wenn die Datei vorhanden ist und eine ZIP-Datei ist, werden ihre Einträge barrierefrei und können geändert werden, und neue Einträge können erstellt werden.

Wenn die Datei vorhanden ist und keine ZIP-Datei ist, wird ein InvalidDataException Fehler ausgelöst.

Wenn die Datei vorhanden ist und leer ist oder nicht vorhanden ist, wird eine neue ZIP-Datei erstellt.

Das Erstellen einer ZIP-Datei mit dem Create Modus ist beim Erstellen einer neuen ZIP-Datei effizienter.

Es wird davon abgeraten, einen anderen Wert als einen null anderen Wert anzugebenentryNameEncoding. Dies kann jedoch für die Interoperabilität mit ZIP-Archivtools und -bibliotheken erforderlich sein, die utf-8-Codierung für Eintragsnamen oder Kommentare 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.
  • Andere Unicode-Codierungen als UTF-8 können nicht für den entryNameEncoding, andernfalls wird ein ArgumentException Fehler ausgelöst.

    Gilt für: