ZipFile.OpenAsync Yöntem

Tanım

Aşırı Yüklemeler

Name Description
OpenAsync(String, ZipArchiveMode, CancellationToken)

Belirtilen modda belirtilende ZipArchivearchiveFileName zaman uyumsuz olarak bir ZipArchiveMode açar.

OpenAsync(String, ZipArchiveMode, Encoding, CancellationToken)

Belirtilen modda belirtilende ZipArchivearchiveFileName zaman uyumsuz olarak bir ZipArchiveMode açar.

OpenAsync(String, ZipArchiveMode, CancellationToken)

Kaynak:
ZipFile.Create.Async.cs
Kaynak:
ZipFile.Create.Async.cs

Belirtilen modda belirtilende ZipArchivearchiveFileName zaman uyumsuz olarak bir ZipArchiveMode açar.

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)

Parametreler

archiveFileName
String

Arşivi açmak için dosya sistemindeki yol.

mode
ZipArchiveMode

Açılan arşivdeki girdilerde izin verilen eylemleri belirten numaralandırma değerlerinden biri.

cancellationToken
CancellationToken

İptal isteklerini izlemek için iptal belirteci.

Döndürülenler

Özel durumlar

archiveFileName sıfır uzunluklu bir dizedir, yalnızca boşluk içerir veya InvalidPathChars tarafından tanımlanan bir veya daha fazla geçersiz karakter içerir.

archiveFileName, null'e eşittir.

archiveFileName sistem tanımlı maksimum uzunluğu aşıyor. Örneğin, Windows tabanlı platformlarda yollar 248 karakterden az, dosya adları ise 260 karakterden kısa olmalıdır.

Belirtilen archiveFileName geçersiz (örneğin, eşlenmemiş bir sürücüde).

Dosya açılırken belirtilmeyen bir G/Ç hatası oluştu.

archiveFileName bir dizin belirtti.

-veya-

Çağıranın gerekli izni yok.

mode geçersiz bir değer belirtti.

içinde archiveFileName belirtilen dosya bulunamadı.

archiveFileName geçersiz biçimde.

Belirtilen dosya zip dosyası olarak yorumlanamadı.

-veya-

mode ve Update arşivde bir girdi eksik veya bozuk ve okunamıyor.

-veya-

mode is Update ve bir girdi belleğe sığamayacak kadar büyük.

Zaman uyumsuz bir işlem iptal edildi.

Açıklamalar

archiveFileNameiçin:

Yolun göreli veya mutlak yol bilgilerini belirtmesine izin verilir. Göreli yol bilgileri geçerli çalışma dizinine göre yorumlanır.

modeiçin:

belirtilirse Read , dosya ile System.IO.FileMode.Openaçılır ve dosya yoksa bir FileNotFoundException oluşturur.

belirtilirse Create , dosya ile System.IO.FileMode.CreateNewaçılır ve dosya zaten varsa bir System.IO.IOException oluşturur.

belirtilirse Update , dosya ile System.IO.FileMode.OpenOrCreateaçılır.

Dosya varsa ve bir zip dosyasıysa, girdileri erişilebilir hale gelir ve değiştirilebilir ve yeni girdiler oluşturulabilir.

Dosya varsa ve zip dosyası değilse, bir InvalidDataException oluşturulur.

Dosya varsa ve boşsa veya yoksa, yeni bir zip dosyası oluşturulur.

Yeni bir zip dosyası oluştururken moduyla Create zip dosyası oluşturmak daha verimlidir.

Şunlara uygulanır

OpenAsync(String, ZipArchiveMode, Encoding, CancellationToken)

Kaynak:
ZipFile.Create.Async.cs
Kaynak:
ZipFile.Create.Async.cs

Belirtilen modda belirtilende ZipArchivearchiveFileName zaman uyumsuz olarak bir ZipArchiveMode açar.

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)

Parametreler

archiveFileName
String

Arşivi açmak için dosya sistemindeki yol.

mode
ZipArchiveMode

Açılan arşivdeki girdilerde izin verilen eylemleri belirten numaralandırma değerlerinden biri.

entryNameEncoding
Encoding

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

cancellationToken
CancellationToken

İptal isteklerini izlemek için iptal belirteci.

Döndürülenler

Özel durumlar

archiveFileName sıfır uzunluklu bir dizedir, yalnızca boşluk içerir veya InvalidPathChars tarafından tanımlanan bir veya daha fazla geçersiz karakter içerir.

archiveFileName, null'e eşittir.

archiveFileName sistem tanımlı maksimum uzunluğu aşıyor. Örneğin, Windows tabanlı platformlarda yollar 248 karakterden az, dosya adları ise 260 karakterden kısa olmalıdır.

archiveFileName geçersizdir (örneğin, eşlenmemiş bir sürücüdedir).

Dosya açılırken belirtilmeyen bir G/Ç hatası oluştu.

archiveFileName bir dizin belirtti.

-veya-

Çağıranın gerekli izni yok.

mode geçersiz bir değer belirtti.

içinde archiveFileName belirtilen dosya bulunamadı.

archiveFileName geçersiz biçimde.

Belirtilen dosya zip dosyası olarak yorumlanamadı.

-veya-

mode ve Update arşivde bir girdi eksik veya bozuk ve okunamıyor.

-veya-

mode is Update ve bir girdi belleğe sığamayacak kadar büyük.

Zaman uyumsuz bir işlem iptal edildi.

Açıklamalar

archiveFileNameiçin:

Yolun göreli veya mutlak yol bilgilerini belirtmesine izin verilir. Göreli yol bilgileri geçerli çalışma dizinine göre yorumlanır.

modeiçin:

belirtilirse Read , dosya ile System.IO.FileMode.Openaçılır ve dosya yoksa bir FileNotFoundException oluşturur.

belirtilirse Create , dosya ile System.IO.FileMode.CreateNewaçılır ve dosya zaten varsa bir System.IO.IOException oluşturur.

belirtilirse Update , dosya ile System.IO.FileMode.OpenOrCreateaçılır.

Dosya varsa ve bir zip dosyasıysa, girdileri erişilebilir hale gelir ve değiştirilebilir ve yeni girdiler oluşturulabilir.

Dosya varsa ve zip dosyası değilse, bir InvalidDataException oluşturulur.

Dosya varsa ve boşsa veya yoksa, yeni bir zip dosyası oluşturulur.

Yeni bir zip dosyası oluştururken moduyla Create zip dosyası oluşturmak daha verimlidir.

için null dışında entryNameEncoding bir değer belirtilmesi önerilmez. Ancak bu, girdi adları veya açıklamaları 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.
  • UTF-8 dışındaki Unicode kodlamaları için entryNameEncodingkullanılamaz, aksi takdirde bir ArgumentException oluşturulur.

    Şunlara uygulanır