Dil

ZipArchive.CreateAsync Yöntem

Tanım

Belirli bir akışta belirtilen modda zaman uyumsuz olarak uygulamasını başlatır ve yeni bir örneğini ZipArchive döndürür ve isteğe bağlı kodlama ve isteğe bağlı bir iptal belirteci ile akışın açık bırakılıp bırakılmayacağını belirtir.

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)

Parametreler

stream
Stream

Giriş veya çıkış akışı.

mode
ZipArchiveMode

Akışın okuma, yazma ve aramayı destekleyip desteklemediğini belirten numaralandırma değerlerinden biri.

leaveOpen
Boolean

true zipArchive'ı devre dışı bıraktıktan sonra akışı açık bırakmak için, aksi takdirde false.

entryNameEncoding
Encoding

Bu ZipArchive'de giriş adlarını ve açıklamalarını okurken veya yazarken kullanılacak kodlama.

cancellationToken
CancellationToken

İzlenecek isteğe bağlı iptal belirteci.

Döndürülenler

Özel durumlar

Akış zaten kapalı.

-veya-

mode akışın özellikleriyle uyumsuzdur.

Akış şeklindedir null.

mode geçersiz bir değer belirtti.

Akışın içeriği ZIP dosyası olarak yorumlanamadı.

-veya-

mode güncelleştirmedir ve arşivde bir girdi eksik veya bozuk ve okunamıyor.

-veya-

mode güncelleştirmedir ve bir girdi belleğe sığamayacak kadar büyük.

için entryNameEncodingUTF-8 dışında bir Unicode kodlaması belirtildi.

Açıklamalar

dışında entryNameEncoding bir değer null belirtilmesi önerilmez. Ancak bu, girdi adları için UTF-8 kodlamasını doğru şekilde desteklemeyen ZIP arşiv araçları ve kitaplıklarıyla birlikte çalışabilirlik için gerekli olabilir.

Bu değer aşağıdaki gibi kullanılır:

  • ZIP arşiv dosyalarını okuma (açma):
    • Belirtilmezse entryNameEncoding (== null):
      • Yerel dosya üst bilgisinin genel amaçlı bit bayrağında dil kodlama bayrağının (EFS) ayarlanmadığı girişler için, giriş adı ve açıklamasının kodunu çözmek için geçerli sistem varsayılan kod sayfasını (Encoding.Default) kullanın.
      • Yerel dosya üst bilgisinin genel amaçlı bit bayrağında dil kodlama bayrağının (EFS) ayarlandığı girişler için, girdi adı ve açıklamasının kodunu çözmek için UTF-8 (Encoding.UTF8) kullanın.
    • Belirtilirse entryNameEncoding (!= null):
      • Yerel dosya üst bilgisinin genel amaçlı bit bayrağındaki dil kodlama bayrağının (EFS) ayarlanmadığı girişler için, girdi adı ve açıklamasının kodunu çözmek için belirtilen entryNameEncoding değerini kullanın.
      • Yerel dosya üst bilgisinin genel amaçlı bit bayrağında dil kodlama bayrağının (EFS) ayarlandığı girişler için, girdi adı ve açıklamasının kodunu çözmek için UTF-8 (Encoding.UTF8) kullanın.
  • ZIP arşiv dosyalarını yazma (kaydetme):
    • Belirtilmezse entryNameEncoding (== null):
      • ASCII aralığının dışında karakterler içeren giriş adları ve açıklamalar için, dil kodlama bayrağı (EFS) yerel dosya üst bilgisinin genel amaçlı bit bayrağında ayarlanır ve girdi adını ve açıklamasını bayt olarak kodlamak için UTF-8 (Encoding.UTF8) kullanılır.
      • ASCII aralığının dışında karakter içermeyen giriş adları ve açıklamalar için, dil kodlama bayrağı (EFS) yerel dosya üst bilgisinin genel amaçlı bit bayrağında ayarlanmaz ve giriş adlarını ve açıklamalarını bayt olarak kodlamak için geçerli sistem varsayılan kod sayfası (Encoding.Default) kullanılır.
    • Belirtilirse entryNameEncoding (!= null):
      • Belirtilen entryNameEncoding her zaman giriş adlarını ve açıklamalarını bayt olarak kodlamak için kullanılır.
      • Yerel dosya üst bilgisinin genel amaçlı bit bayrağındaki dil kodlama bayrağı (EFS), yalnızca belirtilen entryNameEncoding bir UTF-8 kodlaması ise ayarlanır.
  • Şunlara uygulanır