ZipFile.OpenAsync メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
| 名前 | 説明 |
|---|---|
| OpenAsync(String, ZipArchiveMode, CancellationToken) |
指定した |
| OpenAsync(String, ZipArchiveMode, Encoding, CancellationToken) |
指定した |
OpenAsync(String, ZipArchiveMode, CancellationToken)
指定したZipArchiveMode モードで、指定したarchiveFileNameのZipArchiveを非同期に開きます。
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 つ以上含みます。
archiveFileName は nullです。
archiveFileName がシステム定義の最大長を超えています。 たとえば、Windows ベースのプラットフォームでは、パスは 248 文字未満にする必要があり、ファイル名は 260 文字未満にする必要があります。
指定した archiveFileName が無効です (たとえば、マップされていないドライブ上にあります)。
ファイルを開くときに、指定されていない I/O エラーが発生しました。
mode が無効な値を指定しました。
archiveFileNameで指定されたファイルが見つかりませんでした。
archiveFileName が無効な形式です。
指定されたファイルを zip ファイルとして解釈できませんでした。
-又は-
mode が Update され、エントリがアーカイブに存在しないか、破損しているため、読み取ることができません。
-又は-
mode が Update であり、エントリが大きすぎてメモリに収まらない。
非同期操作は取り消されます。
注釈
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)
指定したZipArchiveMode モードで、指定したarchiveFileNameのZipArchiveを非同期に開きます。
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 つ以上含みます。
archiveFileName は nullです。
archiveFileName がシステム定義の最大長を超えています。 たとえば、Windows ベースのプラットフォームでは、パスは 248 文字未満にする必要があり、ファイル名は 260 文字未満にする必要があります。
archiveFileName が無効です (たとえば、マップされていないドライブ上にあります)。
ファイルを開くときに、指定されていない I/O エラーが発生しました。
mode が無効な値を指定しました。
archiveFileNameで指定されたファイルが見つかりませんでした。
archiveFileName が無効な形式です。
指定されたファイルを zip ファイルとして解釈できませんでした。
-又は-
mode が Update され、エントリがアーカイブに存在しないか、破損しているため、読み取ることができません。
-又は-
mode が Update であり、エントリが大きすぎてメモリに収まらない。
非同期操作は取り消されます。
注釈
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 ファイルを作成する方が効率的です。
entryNameEncodingにnull以外の値を指定することはお勧めしません。 ただし、エントリ名またはコメントに対して UTF-8 エンコードが正しくサポートされていない zip アーカイブ ツールやライブラリとの相互運用性のために、これが必要になる場合があります。
この値は次のように使用されます。
-
entryNameEncodingが指定されていない場合 (== null):- ローカル ファイル ヘッダーの汎用ビット フラグの言語エンコード フラグ (EFS) が設定 されていない エントリの場合は、現在のシステムの既定のコード ページ (
Encoding.Default) を使用してエントリ名とコメントをデコードします。 - ローカル ファイル ヘッダーの汎用ビット フラグの言語エンコード フラグ (EFS) が設定されている エントリの場合は、UTF-8 (
Encoding.UTF8) を使用してエントリ名とコメントをデコードします。
- ローカル ファイル ヘッダーの汎用ビット フラグの言語エンコード フラグ (EFS) が設定 されていない エントリの場合は、現在のシステムの既定のコード ページ (
-
entryNameEncodingが指定されている場合 (!= null):- ローカル ファイル ヘッダーの汎用ビット フラグの言語エンコード フラグ (EFS) が設定 されていない エントリの場合は、指定した
entryNameEncodingを使用してエントリ名とコメントをデコードします。 - ローカル ファイル ヘッダーの汎用ビット フラグの言語エンコード フラグ (EFS) が設定されている エントリの場合は、UTF-8 (
Encoding.UTF8) を使用してエントリ名とコメントをデコードします。
- ローカル ファイル ヘッダーの汎用ビット フラグの言語エンコード フラグ (EFS) が設定 されていない エントリの場合は、指定した
-
entryNameEncodingが指定されていない場合 (== null):- ASCII 範囲外の文字を含むエントリ名とコメントの場合、ローカル ファイル ヘッダーの汎用ビット フラグに言語エンコード フラグ (EFS) が設定され、UTF-8 (
Encoding.UTF8) を使用してエントリ名とコメントがバイトにエンコードされます。 - ASCII 範囲外の文字を含まないエントリ名とコメントの場合、ローカル ファイル ヘッダーの汎用ビット フラグには言語エンコード フラグ (EFS) が設定されず、現在のシステムの既定のコード ページ (
Encoding.Default) を使用して、エントリ名とコメントがバイトにエンコードされます。
- ASCII 範囲外の文字を含むエントリ名とコメントの場合、ローカル ファイル ヘッダーの汎用ビット フラグに言語エンコード フラグ (EFS) が設定され、UTF-8 (
-
entryNameEncodingが指定されている場合 (!= null):- 指定した
entryNameEncodingは、エントリ名とコメントをバイトにエンコードするために常に使用されます。 - 指定した
entryNameEncodingが UTF-8 エンコードの場合にのみ、ローカル ファイル ヘッダーの汎用ビット フラグの言語エンコード フラグ (EFS) が設定されます。
- 指定した
UTF-8 以外の Unicode エンコードは entryNameEncodingに使用できません。それ以外の場合は、 ArgumentException がスローされます。