ZipFile.OpenAsync Metode

Definisi

Overload

Nama Deskripsi
OpenAsync(String, ZipArchiveMode, CancellationToken)

Secara asinkron membuka ZipArchive pada yang ditentukan archiveFileName dalam mode yang ditentukan ZipArchiveMode .

OpenAsync(String, ZipArchiveMode, Encoding, CancellationToken)

Secara asinkron membuka ZipArchive pada yang ditentukan archiveFileName dalam mode yang ditentukan ZipArchiveMode .

OpenAsync(String, ZipArchiveMode, CancellationToken)

Sumber:
ZipFile.Create.Async.cs
Sumber:
ZipFile.Create.Async.cs

Secara asinkron membuka ZipArchive pada yang ditentukan archiveFileName dalam mode yang ditentukan ZipArchiveMode .

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)

Parameter

archiveFileName
String

Jalur pada sistem file untuk membuka arsip.

mode
ZipArchiveMode

Salah satu nilai enumerasi yang menentukan tindakan yang diizinkan pada entri dalam arsip yang dibuka.

cancellationToken
CancellationToken

Token pembatalan untuk memantau permintaan pembatalan.

Mengembalikan

Pengecualian

archiveFileName adalah string panjang nol, hanya berisi spasi kosong, atau berisi satu atau beberapa karakter yang tidak valid seperti yang didefinisikan oleh InvalidPathChars.

archiveFileName adalah null.

archiveFileName melebihi panjang maksimum yang ditentukan sistem. Misalnya, pada platform berbasis Windows, jalur harus kurang dari 248 karakter, dan nama file harus kurang dari 260 karakter.

Yang ditentukan archiveFileName tidak valid, (misalnya, ada di drive yang tidak dipetakan).

Terjadi kesalahan I/O yang tidak ditentukan saat membuka file.

archiveFileName menentukan direktori.

-atau-

Pemanggil tidak memiliki izin yang diperlukan.

mode menentukan nilai yang tidak valid.

File yang ditentukan di archiveFileName tidak ditemukan.

archiveFileName dalam format yang tidak valid.

File yang ditentukan tidak dapat ditafsirkan sebagai file zip.

-atau-

mode adalah Update dan entri hilang dari arsip atau rusak dan tidak dapat dibaca.

-atau-

mode adalah Update dan entri terlalu besar untuk masuk ke dalam memori.

Operasi asinkron dibatalkan.

Keterangan

Untuk archiveFileName:

Jalur diizinkan untuk menentukan informasi jalur relatif atau absolut. Informasi jalur relatif ditafsirkan relatif terhadap direktori kerja saat ini.

Untuk mode:

Jika Read ditentukan, file dibuka dengan System.IO.FileMode.Open, dan akan melempar FileNotFoundException jika file tidak ada.

Jika Create ditentukan, file dibuka dengan System.IO.FileMode.CreateNew, dan akan melempar System.IO.IOException jika file sudah ada.

Jika Update ditentukan, file dibuka dengan System.IO.FileMode.OpenOrCreate.

Jika file ada dan merupakan file zip, entrinya akan dapat diakses dan dapat dimodifikasi, dan entri baru dapat dibuat.

Jika file ada dan bukan file zip, file InvalidDataException akan dilemparkan.

Jika file ada dan kosong atau tidak ada, file zip baru akan dibuat.

Membuat file zip dengan Create mode lebih efisien saat membuat file zip baru.

Berlaku untuk

OpenAsync(String, ZipArchiveMode, Encoding, CancellationToken)

Sumber:
ZipFile.Create.Async.cs
Sumber:
ZipFile.Create.Async.cs

Secara asinkron membuka ZipArchive pada yang ditentukan archiveFileName dalam mode yang ditentukan ZipArchiveMode .

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)

Parameter

archiveFileName
String

Jalur pada sistem file untuk membuka arsip.

mode
ZipArchiveMode

Salah satu nilai enumerasi yang menentukan tindakan yang diizinkan pada entri dalam arsip yang dibuka.

entryNameEncoding
Encoding

Pengodean yang digunakan saat membaca atau menulis nama entri dan komentar di ZipArchive ini.

cancellationToken
CancellationToken

Token pembatalan untuk memantau permintaan pembatalan.

Mengembalikan

Pengecualian

archiveFileName adalah string panjang nol, hanya berisi spasi kosong, atau berisi satu atau beberapa karakter yang tidak valid seperti yang didefinisikan oleh InvalidPathChars.

archiveFileName adalah null.

archiveFileName melebihi panjang maksimum yang ditentukan sistem. Misalnya, pada platform berbasis Windows, jalur harus kurang dari 248 karakter, dan nama file harus kurang dari 260 karakter.

archiveFileName tidak valid, (misalnya, ada di drive yang tidak dipetakan).

Terjadi kesalahan I/O yang tidak ditentukan saat membuka file.

archiveFileName menentukan direktori.

-atau-

Pemanggil tidak memiliki izin yang diperlukan.

mode menentukan nilai yang tidak valid.

File yang ditentukan di archiveFileName tidak ditemukan.

archiveFileName dalam format yang tidak valid.

File yang ditentukan tidak dapat ditafsirkan sebagai file zip.

-atau-

mode adalah Update dan entri hilang dari arsip atau rusak dan tidak dapat dibaca.

-atau-

mode adalah Update dan entri terlalu besar untuk masuk ke dalam memori.

Operasi asinkron dibatalkan.

Keterangan

Untuk archiveFileName:

Jalur diizinkan untuk menentukan informasi jalur relatif atau absolut. Informasi jalur relatif ditafsirkan relatif terhadap direktori kerja saat ini.

Untuk mode:

Jika Read ditentukan, file dibuka dengan System.IO.FileMode.Open, dan akan melempar FileNotFoundException jika file tidak ada.

Jika Create ditentukan, file dibuka dengan System.IO.FileMode.CreateNew, dan akan melempar System.IO.IOException jika file sudah ada.

Jika Update ditentukan, file dibuka dengan System.IO.FileMode.OpenOrCreate.

Jika file ada dan merupakan file zip, entrinya akan dapat diakses dan dapat dimodifikasi, dan entri baru dapat dibuat.

Jika file ada dan bukan file zip, file InvalidDataException akan dilemparkan.

Jika file ada dan kosong atau tidak ada, file zip baru akan dibuat.

Membuat file zip dengan Create mode lebih efisien saat membuat file zip baru.

Menentukan nilai selain null untuk entryNameEncoding tidak disarankan. Namun, ini mungkin diperlukan untuk interoperabilitas dengan alat arsip zip dan pustaka yang tidak mendukung pengodean UTF-8 dengan benar untuk nama entri atau komentar.

Nilai ini digunakan sebagai berikut:

  • Membaca (membuka) file arsip ZIP:
    • Jika entryNameEncoding tidak ditentukan (== null):
      • Untuk entri di mana bendera pengodean bahasa (EFS) dalam bendera bit tujuan umum header file lokal tidak diatur, gunakan halaman kode default sistem saat ini (Encoding.Default) untuk mendekode nama entri dan komentar.
      • Untuk entri di mana bendera pengodean bahasa (EFS) dalam bendera bit tujuan umum header file lokal diatur, gunakan UTF-8 (Encoding.UTF8) untuk mendekode nama entri dan komentar.
    • Jika entryNameEncoding ditentukan (!= null):
      • Untuk entri di mana bendera pengodean bahasa (EFS) dalam bendera bit tujuan umum header file lokal tidak diatur, gunakan yang ditentukan entryNameEncoding untuk mendekode nama entri dan komentar.
      • Untuk entri di mana bendera pengodean bahasa (EFS) dalam bendera bit tujuan umum header file lokal diatur, gunakan UTF-8 (Encoding.UTF8) untuk mendekode nama entri dan komentar.
  • Menulis (menyimpan) file arsip ZIP:
    • Jika entryNameEncoding tidak ditentukan (== null):
      • Untuk nama entri dan komentar yang berisi karakter di luar rentang ASCII, bendera pengodean bahasa (EFS) akan diatur dalam bendera bit tujuan umum header file lokal, dan UTF-8 (Encoding.UTF8) akan digunakan untuk mengodekan nama entri dan komentar ke dalam byte.
      • Untuk nama entri dan komentar yang tidak berisi karakter di luar rentang ASCII, bendera pengodean bahasa (EFS) tidak akan diatur dalam bendera bit tujuan umum header file lokal, dan halaman kode default sistem saat ini (Encoding.Default) akan digunakan untuk mengodekan nama entri dan komentar ke dalam byte.
    • Jika entryNameEncoding ditentukan (!= null):
      • Yang ditentukan entryNameEncoding akan selalu digunakan untuk mengodekan nama entri dan komentar ke dalam byte.
      • Bendera pengodean bahasa (EFS) dalam bendera bit tujuan umum header file lokal akan diatur jika dan hanya jika yang ditentukan entryNameEncoding adalah pengodean UTF-8.
  • Pengodean unicode selain UTF-8 tidak dapat digunakan untuk entryNameEncoding, jika tidak ArgumentException , maka akan dilemparkan.

    Berlaku untuk