ZipFile.OpenAsync メソッド

定義

オーバーロード

名前 説明
OpenAsync(String, ZipArchiveMode, CancellationToken)

指定したZipArchiveMode モードで、指定したarchiveFileNameZipArchiveを非同期に開きます。

OpenAsync(String, ZipArchiveMode, Encoding, CancellationToken)

指定したZipArchiveMode モードで、指定したarchiveFileNameZipArchiveを非同期に開きます。

OpenAsync(String, ZipArchiveMode, CancellationToken)

ソース:
ZipFile.Create.Async.cs
ソース:
ZipFile.Create.Async.cs

指定したZipArchiveMode モードで、指定したarchiveFileNameZipArchiveを非同期に開きます。

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)

パラメーター

archiveFileName
String

アーカイブを開くファイル システム上のパス。

mode
ZipArchiveMode

開かれたアーカイブ内のエントリで許可されるアクションを指定する列挙値の 1 つ。

cancellationToken
CancellationToken

キャンセル要求を監視するキャンセル トークン。

返品

例外

archiveFileName は長さ 0 の文字列で、空白文字のみを含むか、InvalidPathChars で定義されている無効な文字を 1 つ以上含みます。

archiveFileNamenullです。

archiveFileName がシステム定義の最大長を超えています。 たとえば、Windows ベースのプラットフォームでは、パスは 248 文字未満にする必要があり、ファイル名は 260 文字未満にする必要があります。

指定した archiveFileName が無効です (たとえば、マップされていないドライブ上にあります)。

ファイルを開くときに、指定されていない I/O エラーが発生しました。

archiveFileName はディレクトリを指定しました。

-又は-

呼び出し元に必要なアクセス許可がありません。

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

archiveFileNameで指定されたファイルが見つかりませんでした。

archiveFileName が無効な形式です。

指定されたファイルを zip ファイルとして解釈できませんでした。

-又は-

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

-又は-

modeUpdate であり、エントリが大きすぎてメモリに収まらない。

非同期操作は取り消されます。

注釈

archiveFileNameの場合:

パスには、相対パスまたは絶対パス情報を指定できます。 相対パス情報は、現在の作業ディレクトリに対する相対パスとして解釈されます。

modeの場合:

Readを指定すると、ファイルはSystem.IO.FileMode.Openで開き、ファイルが存在しない場合はFileNotFoundExceptionがスローされます。

Createが指定されている場合、ファイルはSystem.IO.FileMode.CreateNewで開き、ファイルが既に存在する場合はSystem.IO.IOExceptionがスローされます。

Updateを指定すると、ファイルはSystem.IO.FileMode.OpenOrCreateで開かれます。

ファイルが存在し、zip ファイルである場合、そのエントリはアクセス可能になり、変更でき、新しいエントリを作成できます。

ファイルが存在し、zip ファイルでない場合は、 InvalidDataException がスローされます。

ファイルが存在し、空であるか、存在しない場合は、新しい zip ファイルが作成されます。

新しい zip ファイルを作成する場合、 Create モードで zip ファイルを作成する方が効率的です。

適用対象

OpenAsync(String, ZipArchiveMode, Encoding, CancellationToken)

ソース:
ZipFile.Create.Async.cs
ソース:
ZipFile.Create.Async.cs

指定したZipArchiveMode モードで、指定したarchiveFileNameZipArchiveを非同期に開きます。

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)

パラメーター

archiveFileName
String

アーカイブを開くファイル システム上のパス。

mode
ZipArchiveMode

開かれたアーカイブ内のエントリで許可されるアクションを指定する列挙値の 1 つ。

entryNameEncoding
Encoding

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

cancellationToken
CancellationToken

キャンセル要求を監視するキャンセル トークン。

返品

例外

archiveFileName は長さ 0 の文字列で、空白文字のみを含むか、InvalidPathChars で定義されている無効な文字を 1 つ以上含みます。

archiveFileNamenullです。

archiveFileName がシステム定義の最大長を超えています。 たとえば、Windows ベースのプラットフォームでは、パスは 248 文字未満にする必要があり、ファイル名は 260 文字未満にする必要があります。

archiveFileName が無効です (たとえば、マップされていないドライブ上にあります)。

ファイルを開くときに、指定されていない I/O エラーが発生しました。

archiveFileName はディレクトリを指定しました。

-又は-

呼び出し元に必要なアクセス許可がありません。

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

archiveFileNameで指定されたファイルが見つかりませんでした。

archiveFileName が無効な形式です。

指定されたファイルを zip ファイルとして解釈できませんでした。

-又は-

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

-又は-

modeUpdate であり、エントリが大きすぎてメモリに収まらない。

非同期操作は取り消されます。

注釈

archiveFileNameの場合:

パスには、相対パスまたは絶対パス情報を指定できます。 相対パス情報は、現在の作業ディレクトリに対する相対パスとして解釈されます。

modeの場合:

Readを指定すると、ファイルはSystem.IO.FileMode.Openで開き、ファイルが存在しない場合はFileNotFoundExceptionがスローされます。

Createが指定されている場合、ファイルはSystem.IO.FileMode.CreateNewで開き、ファイルが既に存在する場合はSystem.IO.IOExceptionがスローされます。

Updateを指定すると、ファイルはSystem.IO.FileMode.OpenOrCreateで開かれます。

ファイルが存在し、zip ファイルである場合、そのエントリはアクセス可能になり、変更でき、新しいエントリを作成できます。

ファイルが存在し、zip ファイルでない場合は、 InvalidDataException がスローされます。

ファイルが存在し、空であるか、存在しない場合は、新しい zip ファイルが作成されます。

新しい zip ファイルを作成する場合、 Create モードで zip ファイルを作成する方が効率的です。

entryNameEncodingnull以外の値を指定することはお勧めしません。 ただし、エントリ名またはコメントに対して 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) が設定されます。
  • UTF-8 以外の Unicode エンコードは entryNameEncodingに使用できません。それ以外の場合は、 ArgumentException がスローされます。

    適用対象