ZipFile.OpenAsync Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Přetížení
| Name | Description |
|---|---|
| OpenAsync(String, ZipArchiveMode, CancellationToken) |
Asynchronně otevře na |
| OpenAsync(String, ZipArchiveMode, Encoding, CancellationToken) |
Asynchronně otevře na |
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ě.
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ě.
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:
- Pokud
entryNameEncodingnení 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.
- 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 (
- Pokud
entryNameEncodingje 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ý
entryNameEncodingk 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.
- 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ý
- Pokud
entryNameEncodingnení 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ů.
- 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 (
- Pokud
entryNameEncodingje zadán (!= null):- Zadaná
entryNameEncodinghodnota 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ý
entryNameEncodingkód UTF-8.
- Zadaná
Kódování Unicode jiné než UTF-8 nelze použít pro kód entryNameEncoding, jinak ArgumentException je vyvolán.