ZipArchive.CreateAsync メソッド

定義

指定したモードで指定されたストリームの ZipArchive の新しいインスタンスを非同期的に初期化して返します。ストリームを開いたままにするかどうかを指定します。オプションのエンコードと省略可能なキャンセル トークンを使用します。

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)

パラメーター

stream
Stream

入力ストリームまたは出力ストリーム。

mode
ZipArchiveMode

ストリームが読み取り、書き込み、シークをサポートするかどうかを指定する列挙値の 1 つ。

leaveOpen
Boolean

true ZipArchive を破棄したときにストリームを開いたままにする場合は。それ以外の場合は false

entryNameEncoding
Encoding

この ZipArchive でエントリ名とコメントを読み書きするときに使用するエンコード。

cancellationToken
CancellationToken

監視するオプションのキャンセル トークン。

返品

例外

ストリームは既に閉じられています。

-又は-

mode は、ストリームの機能と互換性がありません。

ストリームは null

mode が無効な値を指定しました。

ストリームの内容を ZIP ファイルとして解釈できませんでした。

-又は-

mode は Update で、エントリがアーカイブに存在しないか、破損しているため、読み取ることができません。

-又は-

mode は Update で、エントリが大きすぎてメモリに収まりません。

entryNameEncodingに UTF-8 以外の Unicode エンコードが指定されました。

注釈

null以外のentryNameEncodingの値を指定することはお勧めしません。 ただし、エントリ名に対して UTF-8 エンコードが正しくサポートされていない ZIP アーカイブ ツールやライブラリとの相互運用性のために、これが必要になる場合があります。

この値は次のように使用されます。

  • ZIP アーカイブ ファイルの読み取り (開く):
    • entryNameEncodingが指定されていない場合 (== null):
      • ローカル ファイル ヘッダーの汎用ビット フラグの言語エンコード フラグ (EFS) が設定 されていない エントリの場合は、現在のシステムの既定のコード ページ (Encoding.Default) を使用してエントリ名とコメントをデコードします。
      • ローカル ファイル ヘッダーの汎用ビット フラグの言語エンコード フラグ (EFS) が設定されている エントリの場合は、UTF-8 (Encoding.UTF8) を使用してエントリ名とコメントをデコードします。
    • entryNameEncodingが指定されている場合 (!= null):
      • ローカル ファイル ヘッダーの汎用ビット フラグの言語エンコード フラグ (EFS) が設定 されていない エントリの場合は、指定した entryNameEncoding を使用してエントリ名とコメントをデコードします。
      • ローカル ファイル ヘッダーの汎用ビット フラグの言語エンコード フラグ (EFS) が設定されている エントリの場合は、UTF-8 (Encoding.UTF8) を使用してエントリ名とコメントをデコードします。
  • ZIP アーカイブ ファイルの書き込み (保存):
    • entryNameEncodingが指定されていない場合 (== null):
      • ASCII 範囲外の文字を含むエントリ名とコメントの場合、ローカル ファイル ヘッダーの汎用ビット フラグに言語エンコード フラグ (EFS) が設定され、UTF-8 (Encoding.UTF8) を使用してエントリ名とコメントがバイトにエンコードされます。
      • ASCII 範囲外の文字を含まないエントリ名とコメントの場合、ローカル ファイル ヘッダーの汎用ビット フラグには言語エンコード フラグ (EFS) が設定されず、現在のシステムの既定のコード ページ (Encoding.Default) を使用して、エントリ名とコメントがバイトにエンコードされます。
    • entryNameEncodingが指定されている場合 (!= null):
      • 指定した entryNameEncoding は、エントリ名とコメントをバイトにエンコードするために常に使用されます。
      • 指定した entryNameEncoding が UTF-8 エンコードの場合にのみ、ローカル ファイル ヘッダーの汎用ビット フラグの言語エンコード フラグ (EFS) が設定されます。
  • 適用対象