ZipFile.OpenAsync Metoda

Definice

Přetížení

Name Description
OpenAsync(String, ZipArchiveMode, CancellationToken)

Asynchronně otevře na ZipArchive zadaném archiveFileNameZipArchiveMode režimu.

OpenAsync(String, ZipArchiveMode, Encoding, CancellationToken)

Asynchronně otevře na ZipArchive zadaném archiveFileNameZipArchiveMode režimu.

OpenAsync(String, ZipArchiveMode, CancellationToken)

Zdroj:
ZipFile.Create.Async.cs
Zdroj:
ZipFile.Create.Async.cs

Asynchronně otevře na ZipArchive zadaném archiveFileNameZipArchiveMode režimu.

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)

Parametry

archiveFileName
String

Cesta v systému souborů k otevření archivu.

mode
ZipArchiveMode

Jedna z hodnot výčtu, která určuje akce, které jsou povoleny pro položky v otevřeném archivu.

cancellationToken
CancellationToken

Token zrušení, který se má monitorovat pro žádosti o zrušení.

Návraty

Výjimky

archiveFileName je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje jeden nebo více neplatných znaků definovaných hodnotou InvalidPathChars.

archiveFileName je null.

archiveFileName překračuje maximální délku definovanou systémem. Například na platformách s Windows musí být cesty kratší než 248 znaků a názvy souborů musí být menší než 260 znaků.

Zadaná archiveFileName hodnota je neplatná (například je na nenamapované jednotce).

Při otevírání souboru došlo k nezadané vstupně-výstupní chybě.

archiveFileName zadal adresář.

nebo

Volající nemá požadované oprávnění.

mode zadal neplatnou hodnotu.

Soubor zadaný v archiveFileName souboru nebyl nalezen.

archiveFileName je v neplatném formátu.

Zadaný soubor nelze interpretovat jako soubor ZIP.

nebo

mode je Update a položka chybí v archivu nebo je poškozena a nelze ji přečíst.

nebo

mode je Update a položka je příliš velká, aby se vešla do paměti.

Asynchronní operace se zruší.

Poznámky

Pro archiveFileName:

Cesta je povolena k zadání relativních nebo absolutních informací o cestě. Relativní informace o cestě se interpretují jako relativní vzhledem k aktuálnímu pracovnímu adresáři.

Pro mode:

Pokud Read je zadán, soubor je otevřen pomocí System.IO.FileMode.Opena vyvolá FileNotFoundException , pokud soubor neexistuje.

Pokud Create je zadán, soubor je otevřen pomocí System.IO.FileMode.CreateNewa vyvolá System.IO.IOException , pokud již soubor existuje.

Je-li Update zadán, soubor je otevřen s System.IO.FileMode.OpenOrCreate.

Pokud soubor existuje a je souborem ZIP, budou jeho položky přístupné a mohou být změněny a mohou být vytvořeny nové položky.

Pokud soubor existuje a není soubor zip, InvalidDataException vyvolá se vyvolá.

Pokud soubor existuje a je prázdný nebo neexistuje, vytvoří se nový soubor ZIP.

Vytvoření souboru ZIP s režimem Create je efektivnější při vytváření nového souboru ZIP.

Platí pro

OpenAsync(String, ZipArchiveMode, Encoding, CancellationToken)

Zdroj:
ZipFile.Create.Async.cs
Zdroj:
ZipFile.Create.Async.cs

Asynchronně otevře na ZipArchive zadaném archiveFileNameZipArchiveMode režimu.

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)

Parametry

archiveFileName
String

Cesta v systému souborů k otevření archivu.

mode
ZipArchiveMode

Jedna z hodnot výčtu, která určuje akce, které jsou povoleny pro položky v otevřeném archivu.

entryNameEncoding
Encoding

Kódování, které se má použít při čtení nebo zápisu názvů položek a komentářů v této zipArchive.

cancellationToken
CancellationToken

Token zrušení, který se má monitorovat pro žádosti o zrušení.

Návraty

Výjimky

archiveFileName je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje jeden nebo více neplatných znaků definovaných hodnotou InvalidPathChars.

archiveFileName je null.

archiveFileName překračuje maximální délku definovanou systémem. Například na platformách s Windows musí být cesty kratší než 248 znaků a názvy souborů musí být menší než 260 znaků.

archiveFileName je neplatný (například je na nemapované jednotce).

Při otevírání souboru došlo k nezadané vstupně-výstupní chybě.

archiveFileName zadal adresář.

nebo

Volající nemá požadované oprávnění.

mode zadal neplatnou hodnotu.

Soubor zadaný v archiveFileName souboru nebyl nalezen.

archiveFileName je v neplatném formátu.

Zadaný soubor nelze interpretovat jako soubor ZIP.

nebo

mode je Update a položka chybí v archivu nebo je poškozena a nelze ji přečíst.

nebo

mode je Update a položka je příliš velká, aby se vešla do paměti.

Asynchronní operace se zruší.

Poznámky

Pro archiveFileName:

Cesta je povolena k zadání relativních nebo absolutních informací o cestě. Relativní informace o cestě se interpretují jako relativní vzhledem k aktuálnímu pracovnímu adresáři.

Pro mode:

Pokud Read je zadán, soubor je otevřen pomocí System.IO.FileMode.Opena vyvolá FileNotFoundException , pokud soubor neexistuje.

Pokud Create je zadán, soubor je otevřen pomocí System.IO.FileMode.CreateNewa vyvolá System.IO.IOException , pokud již soubor existuje.

Je-li Update zadán, soubor je otevřen s System.IO.FileMode.OpenOrCreate.

Pokud soubor existuje a je souborem ZIP, budou jeho položky přístupné a mohou být změněny a mohou být vytvořeny nové položky.

Pokud soubor existuje a není soubor zip, InvalidDataException vyvolá se vyvolá.

Pokud soubor existuje a je prázdný nebo neexistuje, vytvoří se nový soubor ZIP.

Vytvoření souboru ZIP s režimem Create je efektivnější při vytváření nového souboru ZIP.

Zadání jiné hodnoty než null pro entryNameEncoding se nedoporučuje. To však může být nezbytné pro interoperabilitu s nástroji a knihovnami zip archivu, které správně nepodporují kódování UTF-8 pro názvy položek nebo komentáře.

Tato hodnota se používá takto:

  • Čtení (otevírání) archivní soubory ZIP:
    • Pokud entryNameEncoding není zadán (== null):
      • Pro položky, ve kterých není nastaven příznak kódování jazyka (EFS) v příznaku bitu pro obecné účely hlavičky místního souboru, použijte aktuální výchozí znakovou stránku systému (Encoding.Default) k dekódování názvu položky a komentáře.
      • Pro položky, kde je nastaven příznak kódování jazyka (EFS) v příznaku pro obecné účely hlavičky místního souboru, použijte UTF-8 (Encoding.UTF8) k dekódování názvu položky a komentáře.
    • Pokud entryNameEncoding je zadán (!= null):
      • Pro položky, ve kterých není nastaven příznak kódování jazyka (EFS) v příznaku bitu pro obecné účely hlavičky místního souboru, použijte určený entryNameEncoding k dekódování názvu položky a komentáře.
      • Pro položky, kde je nastaven příznak kódování jazyka (EFS) v příznaku pro obecné účely hlavičky místního souboru, použijte UTF-8 (Encoding.UTF8) k dekódování názvu položky a komentáře.
  • Zápis (ukládání) archivní soubory ZIP:
    • Pokud entryNameEncoding není zadán (== null):
      • Pro názvy položek a komentáře, které obsahují znaky mimo rozsah ASCII, se příznak kódování jazyka (EFS) nastaví v příznaku bitu pro obecné účely v hlavičce místního souboru a UTF-8 (Encoding.UTF8) se použije ke kódování názvu položky a komentáře do bajtů.
      • U názvů položek a komentářů, které neobsahují znaky mimo rozsah ASCII, se příznak kódování jazyka (EFS) nenastaví v příznaku bitu pro obecné účely záhlaví místního souboru a aktuální výchozí znaková stránka systému (Encoding.Default) se použije ke kódování názvů položek a komentářů do bajtů.
    • Pokud entryNameEncoding je zadán (!= null):
      • Zadaná entryNameEncoding hodnota bude vždy použita ke kódování názvů položek a komentářů do bajtů.
      • Příznak kódování jazyka (EFS) v příznaku bitu pro obecné účely hlavičky místního souboru bude nastaven, pouze pokud je zadaný entryNameEncoding kód UTF-8.
  • Kódování Unicode jiné než UTF-8 nelze použít pro kód entryNameEncoding, jinak ArgumentException je vyvolán.

    Platí pro