ZipArchive.CreateAsync Metod

Definition

Initierar och returnerar asynkront en ny instans av ZipArchive på den angivna strömmen i det angivna läget och anger om strömmen ska vara öppen, med en valfri kodning och en valfri annulleringstoken.

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)

Parametrar

stream
Stream

Indata- eller utdataströmmen.

mode
ZipArchiveMode

Ett av uppräkningsvärdena som anger om strömmen stöder läsning, skrivning och sökning.

leaveOpen
Boolean

true för att lämna strömmen öppen när ZipArchive exponeras, annars false.

entryNameEncoding
Encoding

Kodningen som ska användas när du läser eller skriver postnamn och kommentarer i den här ZipArchive.

cancellationToken
CancellationToken

Den valfria annulleringstoken som ska övervakas.

Returer

Undantag

Strömmen är redan stängd.

-eller-

mode är inte kompatibelt med strömmens funktioner.

Strömmen är null.

mode angett ett ogiltigt värde.

Det gick inte att tolka innehållet i dataströmmen som en ZIP-fil.

-eller-

mode är Update och en post saknas i arkivet eller är skadad och kan inte läsas.

-eller-

mode är Update och en post är för stor för att passa in i minnet.

En annan Unicode-kodning än UTF-8 angavs för entryNameEncoding.

Kommentarer

Det rekommenderas inte att ange ett värde för entryNameEncoding annat än null . Detta kan dock vara nödvändigt för samverkan med ZIP-arkivverktyg och bibliotek som inte har rätt stöd för UTF-8-kodning för postnamn.

Det här värdet används på följande sätt:

  • Läser (öppnar) ZIP-arkivfiler:
    • Om entryNameEncoding inte har angetts (== null):
      • För poster där språkkodningsflaggan (EFS) i den allmänna bitflaggan för den lokala filrubriken inte har angetts använder du det aktuella systemets standardkodsida (Encoding.Default) för att avkoda postnamnet och kommentaren.
      • För poster där språkkodningsflaggan (EFS) i den allmänna bitflaggan för den lokala filrubriken anges använder du UTF-8 (Encoding.UTF8) för att avkoda postnamnet och kommentaren.
    • Om entryNameEncoding anges (!= null):
      • För poster där språkkodningsflaggan (EFS) i den allmänna bitflaggan för den lokala filrubriken inte har angetts använder du angivet entryNameEncoding för att avkoda postnamnet och kommentaren.
      • För poster där språkkodningsflaggan (EFS) i den allmänna bitflaggan för den lokala filrubriken anges använder du UTF-8 (Encoding.UTF8) för att avkoda postnamnet och kommentaren.
  • Skriva (spara) ZIP-arkivfiler:
    • Om entryNameEncoding inte har angetts (== null):
      • För postnamn och kommentarer som innehåller tecken utanför ASCII-intervallet anges språkkodningsflaggan (EFS) i den allmänna bitflaggan för den lokala filrubriken och UTF-8 (Encoding.UTF8) används för att koda postnamnet och kommentera till byte.
      • För postnamn och kommentarer som inte innehåller tecken utanför ASCII-intervallet anges inte språkkodningsflaggan (EFS) i den allmänna bitflaggan för den lokala filrubriken, och den aktuella systemstandardkodsidan (Encoding.Default) används för att koda postnamnen och kommentarerna till byte.
    • Om entryNameEncoding anges (!= null):
      • Den angivna entryNameEncoding används alltid för att koda postnamnen och kommentarerna till byte.
      • Språkkodningsflaggan (EFS) i den allmänna bitflaggan för den lokala filrubriken anges om och endast om den angivna entryNameEncoding är en UTF-8-kodning.
  • Gäller för