ZipFile.ExtractToDirectoryAsync メソッド

定義

オーバーロード

名前 説明
ExtractToDirectoryAsync(String, String, Encoding, Boolean, CancellationToken)

指定したアーカイブ内のすべてのファイルを、ファイル システム上のディレクトリに非同期的に抽出します。

指定したディレクトリは存在できません。 このメソッドは、すべてのサブディレクトリと指定したディレクトリを作成します。

アーカイブの抽出中にエラーが発生した場合、アーカイブは部分的に抽出されたままになります。 各エントリは、抽出されたファイルが、エントリがアーカイブに対して持っているのと同じ相対パスを destinationDirectoryName に持つように抽出されます。 パスには、相対パスまたは絶対パス情報を指定できます。 相対パス情報は、現在の作業ディレクトリに対する相対パスとして解釈されます。 アーカイブするファイルに無効な最終変更時刻がある場合は、zip タイムスタンプ形式 (1980 年 1 月 1 日午前 0 時) で表される最初の日時が使用されます。

ExtractToDirectoryAsync(Stream, String, Encoding, Boolean, CancellationToken)

指定したストリームに格納されている zip アーカイブからすべてのファイルを非同期的に抽出し、ファイル システム上の指定された宛先ディレクトリに配置し、エントリ名に指定した文字エンコーディングを使用し、必要に応じて、転送先ディレクトリ内のファイルを上書きするかどうかを選択できます。

ExtractToDirectoryAsync(String, String, Encoding, CancellationToken)

指定したアーカイブ内のすべてのファイルを、ファイル システム上のディレクトリに非同期的に抽出します。

ExtractToDirectoryAsync(String, String, Boolean, CancellationToken)

指定したアーカイブ内のすべてのファイルを、ファイル システム上のディレクトリに非同期的に抽出します。

ExtractToDirectoryAsync(Stream, String, Boolean, CancellationToken)

指定したストリームに格納されている zip アーカイブからすべてのファイルを非同期に抽出し、ファイル システム上の指定された宛先ディレクトリに配置します。必要に応じて、転送先ディレクトリ内のファイルを上書きするかどうかを選択できます。

ExtractToDirectoryAsync(String, String, CancellationToken)

指定したアーカイブ内のすべてのファイルを、ファイル システム上のディレクトリに非同期的に抽出します。

ExtractToDirectoryAsync(Stream, String, CancellationToken)

指定したストリームに格納されている zip アーカイブからすべてのファイルを非同期に抽出し、ファイル システム上の指定した宛先ディレクトリに配置します。

ExtractToDirectoryAsync(Stream, String, Encoding, CancellationToken)

指定したストリームに格納されている zip アーカイブからすべてのファイルを非同期に抽出し、ファイル システム上の指定された宛先ディレクトリに配置し、エントリ名に指定した文字エンコードを使用します。

ExtractToDirectoryAsync(String, String, Encoding, Boolean, CancellationToken)

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

指定したアーカイブ内のすべてのファイルを、ファイル システム上のディレクトリに非同期的に抽出します。

指定したディレクトリは存在できません。 このメソッドは、すべてのサブディレクトリと指定したディレクトリを作成します。

アーカイブの抽出中にエラーが発生した場合、アーカイブは部分的に抽出されたままになります。 各エントリは、抽出されたファイルが、エントリがアーカイブに対して持っているのと同じ相対パスを destinationDirectoryName に持つように抽出されます。 パスには、相対パスまたは絶対パス情報を指定できます。 相対パス情報は、現在の作業ディレクトリに対する相対パスとして解釈されます。 アーカイブするファイルに無効な最終変更時刻がある場合は、zip タイムスタンプ形式 (1980 年 1 月 1 日午前 0 時) で表される最初の日時が使用されます。

public static System.Threading.Tasks.Task ExtractToDirectoryAsync(string sourceArchiveFileName, string destinationDirectoryName, System.Text.Encoding? entryNameEncoding, bool overwriteFiles, System.Threading.CancellationToken cancellationToken = default);
static member ExtractToDirectoryAsync : string * string * System.Text.Encoding * bool * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function ExtractToDirectoryAsync (sourceArchiveFileName As String, destinationDirectoryName As String, entryNameEncoding As Encoding, overwriteFiles As Boolean, Optional cancellationToken As CancellationToken = Nothing) As Task

パラメーター

sourceArchiveFileName
String

抽出するファイル システム上のアーカイブへのパス。

destinationDirectoryName
String

相対パスまたは絶対パスとして指定された、抽出されたファイルを配置するディレクトリへのパス。 相対パスは、現在の作業ディレクトリに対する相対パスとして解釈されます。

entryNameEncoding
Encoding

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

overwriteFiles
Boolean

true ファイルを上書きする場合。それ以外の場合 false

cancellationToken
CancellationToken

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

返品

例外

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

sourceArchiveFileName または destinationDirectoryNamenull

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

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

I/O エラーが発生しました。

-又は-

アーカイブ エントリの名前は長さ 0 で、空白文字のみを含むか、InvalidPathChars で定義されている無効な文字が 1 つ以上含まれています。

-又は-

アーカイブ エントリを抽出すると、(たとえば、親ディレクトリ アクセサーが原因で) コピー先ディレクトリの外部にあるファイルの宛先になります。

-又は-

アーカイブ エントリの名前は、同じアーカイブから既に抽出されたエントリと同じです。

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

sourceArchiveFileName または destinationDirectoryName が無効な形式です。

sourceArchiveFileName が見つかりませんでした。

sourceArchiveFileNameで指定されたアーカイブが有効な ZipArchive ではありません。

-又は-

アーカイブ エントリが見つからないか、破損しています。

-又は-

アーカイブ エントリは、サポートされていない圧縮方法を使用して圧縮されています。

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

注釈

entryNameEncodingnull以外の値に設定されている場合、エントリ名とコメントは次の規則に従ってデコードされます。

  • ローカル ファイル ヘッダーの汎用ビット フラグの言語エンコード フラグ (EFS) が設定されていないエントリの場合は、指定した entryNameEncoding を使用してエントリ名とコメントをデコードします。
  • ローカル ファイル ヘッダーの汎用ビット フラグの言語エンコード フラグ (EFS) が設定されているエントリの場合は、UTF-8 (Encoding.UTF8) を使用してエントリ名とコメントをデコードします。

entryNameEncodingnull に設定されている場合、エントリ名とコメントは次の規則に従ってデコードされます。

  • ローカル ファイル ヘッダーの汎用ビット フラグの言語エンコード フラグ (EFS) が設定されていないエントリの場合は、現在のシステムの既定のコード ページ (Encoding.Default) を使用してエントリ名とコメントをデコードします。
  • ローカル ファイル ヘッダーの汎用ビット フラグの言語エンコード フラグ (EFS) が設定されているエントリの場合は、UTF-8 (Encoding.UTF8) を使用してエントリ名とコメントをデコードします。

UTF-8 以外の Unicode エンコードは entryNameEncodingに使用できません。それ以外の場合は、 ArgumentException がスローされます。

Warning

このメソッドでは、圧縮されていないサイズの合計やアーカイブから抽出されたエントリの数は制限されません。 信頼されていないソースからのアーカイブを処理する場合は、 ZipArchiveを使用してエントリを手動で反復処理し、圧縮されていない合計サイズとエントリの数がシナリオで許容できる制限内にあることを検証します。

適用対象

ExtractToDirectoryAsync(Stream, String, Encoding, Boolean, CancellationToken)

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

指定したストリームに格納されている zip アーカイブからすべてのファイルを非同期的に抽出し、ファイル システム上の指定された宛先ディレクトリに配置し、エントリ名に指定した文字エンコーディングを使用し、必要に応じて、転送先ディレクトリ内のファイルを上書きするかどうかを選択できます。

public static System.Threading.Tasks.Task ExtractToDirectoryAsync(System.IO.Stream source, string destinationDirectoryName, System.Text.Encoding? entryNameEncoding, bool overwriteFiles, System.Threading.CancellationToken cancellationToken = default);
static member ExtractToDirectoryAsync : System.IO.Stream * string * System.Text.Encoding * bool * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function ExtractToDirectoryAsync (source As Stream, destinationDirectoryName As String, entryNameEncoding As Encoding, overwriteFiles As Boolean, Optional cancellationToken As CancellationToken = Nothing) As Task

パラメーター

source
Stream

zip アーカイブの抽出元となるストリーム。

destinationDirectoryName
String

相対パスまたは絶対パスとして指定された、抽出されたファイルを配置するディレクトリへのパス。 相対パスは、現在の作業ディレクトリに対する相対パスとして解釈されます。

entryNameEncoding
Encoding

このアーカイブ内のエントリ名とコメントを読み書きするときに使用するエンコード。 このパラメーターの値は、エントリ名またはコメントに UTF-8 エンコードをサポートしていない zip アーカイブ ツールおよびライブラリとの相互運用性にエンコードが必要な場合にのみ指定します。

overwriteFiles
Boolean

true ファイルを上書きする場合。それ以外の場合 false

cancellationToken
CancellationToken

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

返品

例外

destinationDirectoryNameEmpty、空白のみを含む、または少なくとも 1 つの無効な文字が含まれています。

-又は-

entryNameEncoding は UTF-8 以外の Unicode エンコードに設定されています。

destinationDirectoryName または sourcenull

destinationDirectoryNameで指定されたパスが、システム定義の最大長を超えています。

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

アーカイブ内のエントリの名前が Emptyされているか、空白のみを含むか、少なくとも 1 つの無効な文字が含まれています。

-又は-

アーカイブ エントリを抽出すると、 destinationDirectoryNameで指定されたディレクトリの外部にあるファイルが作成されます。 (たとえば、エントリ名に親ディレクトリ アクセサーが含まれている場合に発生する可能性があります)。

-又は-

overwriteFilesfalse であり、抽出するアーカイブ エントリは、既に抽出されているエントリまたは destinationDirectoryName に存在するエントリと同じ名前を持ちます。

呼び出し元には、アーカイブまたは宛先ディレクトリにアクセスするために必要なアクセス許可がありません。

destinationDirectoryName には無効な形式が含まれています。

source ストリームに含まれるアーカイブが有効な zip アーカイブではありません。

-又は-

アーカイブ エントリが見つからないか、破損しています。

-又は-

アーカイブ エントリは、サポートされていない圧縮方法を使用して圧縮されました。

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

注釈

このメソッドは、指定したディレクトリとすべてのサブディレクトリを作成します。 宛先ディレクトリは既に存在できません。 destinationDirectoryName内のパスまたは source パラメーターに含まれる zip アーカイブ内のファイルの検証に関連する例外は、抽出前にスローされます。 それ以外の場合、抽出中にエラーが発生した場合、アーカイブは部分的に抽出されたままになります。 抽出された各ファイルには、ソース エントリがアーカイブのルートに対して持っているのと同じ destinationDirectoryName で指定されたディレクトリへの相対パスがあります。

アーカイブするファイルに無効な最終変更時刻がある場合は、zip タイムスタンプ形式で表される最初の日付と時刻 (1980 年 1 月 1 日の午前 0 時) が使用されます。

Warning

このメソッドでは、圧縮されていないサイズの合計やアーカイブから抽出されたエントリの数は制限されません。 信頼されていないソースからのアーカイブを処理する場合は、 ZipArchiveを使用してエントリを手動で反復処理し、圧縮されていない合計サイズとエントリの数がシナリオで許容できる制限内にあることを検証します。

適用対象

ExtractToDirectoryAsync(String, String, Encoding, CancellationToken)

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

指定したアーカイブ内のすべてのファイルを、ファイル システム上のディレクトリに非同期的に抽出します。

public static System.Threading.Tasks.Task ExtractToDirectoryAsync(string sourceArchiveFileName, string destinationDirectoryName, System.Text.Encoding? entryNameEncoding, System.Threading.CancellationToken cancellationToken = default);
static member ExtractToDirectoryAsync : string * string * System.Text.Encoding * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function ExtractToDirectoryAsync (sourceArchiveFileName As String, destinationDirectoryName As String, entryNameEncoding As Encoding, Optional cancellationToken As CancellationToken = Nothing) As Task

パラメーター

sourceArchiveFileName
String

抽出するファイル システム上のアーカイブへのパス。

destinationDirectoryName
String

ファイル システム上のディレクトリへのパス。 指定されたディレクトリは存在しない必要がありますが、そのディレクトリに含まれているディレクトリは存在する必要があります。

entryNameEncoding
Encoding

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

cancellationToken
CancellationToken

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

返品

例外

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

sourceArchiveFileName または destinationDirectoryNamenull

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

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

I/O エラーが発生しました。

-又は-

アーカイブ エントリの名前は長さ 0 で、空白文字のみを含むか、InvalidPathChars で定義されている無効な文字が 1 つ以上含まれています。

-又は-

アーカイブ エントリを抽出すると、(たとえば、親ディレクトリ アクセサーが原因で) コピー先ディレクトリの外部にあるファイルの宛先になります。

-又は-

アーカイブ エントリの名前は、同じアーカイブから既に抽出されたエントリと同じです。

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

sourceArchiveFileName または destinationDirectoryName が無効な形式です。

sourceArchiveFileName が見つかりませんでした。

sourceArchiveFileNameで指定されたアーカイブが有効な ZipArchive ではありません。

-又は-

アーカイブ エントリが見つからないか、破損しています。

-又は-

アーカイブ エントリは、サポートされていない圧縮方法を使用して圧縮されています。

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

注釈

指定したディレクトリは存在できません。 このメソッドは、すべてのサブディレクトリと指定したディレクトリを作成します。

アーカイブの抽出中にエラーが発生した場合、アーカイブは部分的に抽出されたままです。 各エントリは、抽出されたファイルの destinationDirectoryName への相対パスが、エントリがアーカイブに対して持つパスと同じになるように抽出されます。 パスは相対パスまたは絶対パス情報を受け入れます。相対パスは、現在の作業ディレクトリに対する相対パスとして解釈されます。

アーカイブするファイルに無効な最終変更時刻がある場合は、zip タイムスタンプ形式で表される最初の日付と時刻 (1980 年 1 月 1 日の午前 0 時) が使用されます。

entryNameEncodingnull以外の値に設定されている場合、エントリ名とコメントは次の規則に従ってデコードされます。

  • ローカル ファイル ヘッダーの汎用ビット フラグの言語エンコード フラグ (EFS) が設定されていないエントリの場合は、指定した entryNameEncoding を使用してエントリ名とコメントをデコードします。
  • ローカル ファイル ヘッダーの汎用ビット フラグの言語エンコード フラグ (EFS) が設定されているエントリの場合は、UTF-8 (Encoding.UTF8) を使用してエントリ名とコメントをデコードします。

entryNameEncodingnull に設定されている場合、エントリ名とコメントは次の規則に従ってデコードされます。

  • ローカル ファイル ヘッダーの汎用ビット フラグの言語エンコード フラグ (EFS) が設定されていないエントリの場合は、現在のシステムの既定のコード ページ (Encoding.Default) を使用してエントリ名とコメントをデコードします。
  • ローカル ファイル ヘッダーの汎用ビット フラグの言語エンコード フラグ (EFS) が設定されているエントリの場合は、UTF-8 (Encoding.UTF8) を使用してエントリ名とコメントをデコードします。

UTF-8 以外の Unicode エンコードは entryNameEncodingに使用できません。それ以外の場合は、 ArgumentException がスローされます。

Warning

このメソッドでは、圧縮されていないサイズの合計やアーカイブから抽出されたエントリの数は制限されません。 信頼されていないソースからのアーカイブを処理する場合は、 ZipArchiveを使用してエントリを手動で反復処理し、圧縮されていない合計サイズとエントリの数がシナリオで許容できる制限内にあることを検証します。

適用対象

ExtractToDirectoryAsync(String, String, Boolean, CancellationToken)

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

指定したアーカイブ内のすべてのファイルを、ファイル システム上のディレクトリに非同期的に抽出します。

public static System.Threading.Tasks.Task ExtractToDirectoryAsync(string sourceArchiveFileName, string destinationDirectoryName, bool overwriteFiles, System.Threading.CancellationToken cancellationToken = default);
static member ExtractToDirectoryAsync : string * string * bool * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function ExtractToDirectoryAsync (sourceArchiveFileName As String, destinationDirectoryName As String, overwriteFiles As Boolean, Optional cancellationToken As CancellationToken = Nothing) As Task

パラメーター

sourceArchiveFileName
String

抽出するファイル システム上のアーカイブへのパス。

destinationDirectoryName
String

相対パスまたは絶対パスとして指定された、抽出されたファイルを配置するディレクトリへのパス。 相対パスは、現在の作業ディレクトリに対する相対パスとして解釈されます。

overwriteFiles
Boolean

true ファイルを上書きする場合。それ以外の場合 false

cancellationToken
CancellationToken

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

返品

例外

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

sourceArchiveFileName または destinationDirectoryNamenull

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

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

I/O エラーが発生しました。

-又は-

アーカイブ エントリの名前は長さ 0 で、空白文字のみを含むか、InvalidPathChars で定義されている無効な文字が 1 つ以上含まれています。

-又は-

アーカイブ エントリを抽出すると、(たとえば、親ディレクトリ アクセサーが原因で) コピー先ディレクトリの外部にあるファイルの宛先になります。

-又は-

アーカイブ エントリの名前は、同じアーカイブから既に抽出されたエントリと同じです。

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

sourceArchiveFileName または destinationDirectoryName が無効な形式です。

sourceArchiveFileName が見つかりませんでした。

sourceArchiveFileName 有効な ZipArchive ではありません。

-又は-

アーカイブ エントリが見つからないか、破損しています。

-又は-

アーカイブ エントリは、サポートされていない圧縮方法を使用して圧縮されています。

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

注釈

指定したディレクトリは存在できません。 このメソッドは、すべてのサブディレクトリと指定したディレクトリを作成します。

アーカイブの抽出中にエラーが発生した場合、アーカイブは部分的に抽出されたままです。 各エントリは、抽出されたファイルの destinationDirectoryName への相対パスが、エントリがアーカイブに対して持つパスと同じになるように抽出されます。 パスは相対パスまたは絶対パス情報を受け入れます。相対パスは、現在の作業ディレクトリに対する相対パスとして解釈されます。

アーカイブするファイルに無効な最終変更時刻がある場合は、zip タイムスタンプ形式で表される最初の日付と時刻 (1980 年 1 月 1 日の午前 0 時) が使用されます。

Warning

このメソッドでは、圧縮されていないサイズの合計やアーカイブから抽出されたエントリの数は制限されません。 信頼されていないソースからのアーカイブを処理する場合は、 ZipArchiveを使用してエントリを手動で反復処理し、圧縮されていない合計サイズとエントリの数がシナリオで許容できる制限内にあることを検証します。

適用対象

ExtractToDirectoryAsync(Stream, String, Boolean, CancellationToken)

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

指定したストリームに格納されている zip アーカイブからすべてのファイルを非同期に抽出し、ファイル システム上の指定された宛先ディレクトリに配置します。必要に応じて、転送先ディレクトリ内のファイルを上書きするかどうかを選択できます。

public static System.Threading.Tasks.Task ExtractToDirectoryAsync(System.IO.Stream source, string destinationDirectoryName, bool overwriteFiles, System.Threading.CancellationToken cancellationToken = default);
static member ExtractToDirectoryAsync : System.IO.Stream * string * bool * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function ExtractToDirectoryAsync (source As Stream, destinationDirectoryName As String, overwriteFiles As Boolean, Optional cancellationToken As CancellationToken = Nothing) As Task

パラメーター

source
Stream

zip アーカイブの抽出元となるストリーム。

destinationDirectoryName
String

相対パスまたは絶対パスとして指定された、抽出されたファイルを配置するディレクトリへのパス。 相対パスは、現在の作業ディレクトリに対する相対パスとして解釈されます。

overwriteFiles
Boolean

true ファイルを上書きする場合。それ以外の場合 false

cancellationToken
CancellationToken

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

返品

例外

destinationDirectoryNameEmpty、空白のみを含む、または少なくとも 1 つの無効な文字が含まれています。

destinationDirectoryName または sourcenull

destinationDirectoryNameで指定されたパスが、システム定義の最大長を超えています。

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

アーカイブ内のエントリの名前が Emptyされているか、空白のみを含むか、少なくとも 1 つの無効な文字が含まれています。

-又は-

アーカイブ エントリを抽出すると、 destinationDirectoryNameで指定されたディレクトリの外部にあるファイルが作成されます。 (たとえば、エントリ名に親ディレクトリ アクセサーが含まれている場合に発生する可能性があります)。

-又は-

overwriteFilesfalse であり、抽出するアーカイブ エントリは、既に抽出されているエントリまたは destinationDirectoryName に存在するエントリと同じ名前を持ちます。

呼び出し元には、アーカイブまたは宛先ディレクトリにアクセスするために必要なアクセス許可がありません。

destinationDirectoryName には無効な形式が含まれています。

source ストリームに含まれるアーカイブが有効な zip アーカイブではありません。

-又は-

アーカイブ エントリが見つからないか、破損しています。

-又は-

アーカイブ エントリは、サポートされていない圧縮方法を使用して圧縮されました。

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

注釈

このメソッドは、指定したディレクトリとすべてのサブディレクトリを作成します。 宛先ディレクトリは既に存在できません。 destinationDirectoryName内のパスまたは source パラメーターに含まれる zip アーカイブ内のファイルの検証に関連する例外は、抽出前にスローされます。 それ以外の場合、抽出中にエラーが発生した場合、アーカイブは部分的に抽出されたままになります。 抽出された各ファイルには、ソース エントリがアーカイブのルートに対して持っているのと同じ destinationDirectoryName で指定されたディレクトリへの相対パスがあります。

アーカイブするファイルに無効な最終変更時刻がある場合は、zip タイムスタンプ形式で表される最初の日付と時刻 (1980 年 1 月 1 日の午前 0 時) が使用されます。

Warning

このメソッドでは、圧縮されていないサイズの合計やアーカイブから抽出されたエントリの数は制限されません。 信頼されていないソースからのアーカイブを処理する場合は、 ZipArchiveを使用してエントリを手動で反復処理し、圧縮されていない合計サイズとエントリの数がシナリオで許容できる制限内にあることを検証します。

適用対象

ExtractToDirectoryAsync(String, String, CancellationToken)

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

指定したアーカイブ内のすべてのファイルを、ファイル システム上のディレクトリに非同期的に抽出します。

public static System.Threading.Tasks.Task ExtractToDirectoryAsync(string sourceArchiveFileName, string destinationDirectoryName, System.Threading.CancellationToken cancellationToken = default);
static member ExtractToDirectoryAsync : string * string * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function ExtractToDirectoryAsync (sourceArchiveFileName As String, destinationDirectoryName As String, Optional cancellationToken As CancellationToken = Nothing) As Task

パラメーター

sourceArchiveFileName
String

抽出するファイル システム上のアーカイブへのパス。

destinationDirectoryName
String

相対パスまたは絶対パスとして指定された、抽出されたファイルを配置するディレクトリへのパス。 相対パスは、現在の作業ディレクトリに対する相対パスとして解釈されます。

cancellationToken
CancellationToken

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

返品

例外

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

sourceArchiveFileName または destinationDirectoryNamenull

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

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

I/O エラーが発生しました。

-又は-

アーカイブ エントリの名前は長さ 0 で、空白文字のみを含むか、InvalidPathChars で定義されている無効な文字が 1 つ以上含まれています。

-又は-

アーカイブ エントリを抽出すると、(たとえば、親ディレクトリ アクセサーが原因で) コピー先ディレクトリの外部にあるファイルの宛先になります。

-又は-

アーカイブ エントリの名前は、同じアーカイブから既に抽出されたエントリと同じです。

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

sourceArchiveFileName または destinationDirectoryName が無効な形式です。

sourceArchiveFileName が見つかりませんでした。

sourceArchiveFileNameで指定されたアーカイブが有効な ZipArchive ではありません。

-又は-

アーカイブ エントリが見つからないか、破損しています。

-又は-

アーカイブ エントリは、サポートされていない圧縮方法を使用して圧縮されています。

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

注釈

指定したディレクトリは存在できません。 このメソッドは、すべてのサブディレクトリと指定したディレクトリを作成します。

アーカイブの抽出中にエラーが発生した場合、アーカイブは部分的に抽出されたままです。 各エントリは、抽出されたファイルの destinationDirectoryName への相対パスが、エントリがアーカイブに対して持つパスと同じになるように抽出されます。 パスは相対パスまたは絶対パス情報を受け入れます。相対パスは、現在の作業ディレクトリに対する相対パスとして解釈されます。

アーカイブするファイルに無効な最終変更時刻がある場合は、zip タイムスタンプ形式で表される最初の日付と時刻 (1980 年 1 月 1 日の午前 0 時) が使用されます。

Warning

このメソッドでは、圧縮されていないサイズの合計やアーカイブから抽出されたエントリの数は制限されません。 信頼されていないソースからのアーカイブを処理する場合は、 ZipArchiveを使用してエントリを手動で反復処理し、圧縮されていない合計サイズとエントリの数がシナリオで許容できる制限内にあることを検証します。

適用対象

ExtractToDirectoryAsync(Stream, String, CancellationToken)

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

指定したストリームに格納されている zip アーカイブからすべてのファイルを非同期に抽出し、ファイル システム上の指定した宛先ディレクトリに配置します。

public static System.Threading.Tasks.Task ExtractToDirectoryAsync(System.IO.Stream source, string destinationDirectoryName, System.Threading.CancellationToken cancellationToken = default);
static member ExtractToDirectoryAsync : System.IO.Stream * string * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function ExtractToDirectoryAsync (source As Stream, destinationDirectoryName As String, Optional cancellationToken As CancellationToken = Nothing) As Task

パラメーター

source
Stream

zip アーカイブの抽出元となるストリーム。

destinationDirectoryName
String

相対パスまたは絶対パスとして指定された、抽出されたファイルを配置するディレクトリへのパス。 相対パスは、現在の作業ディレクトリに対する相対パスとして解釈されます。

cancellationToken
CancellationToken

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

返品

例外

destinationDirectoryNameEmpty、空白のみを含む、または少なくとも 1 つの無効な文字が含まれています。

destinationDirectoryName または sourcenull

destinationDirectoryNameで指定されたパスが、システム定義の最大長を超えています。

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

アーカイブ内のエントリの名前が Emptyされているか、空白のみを含むか、少なくとも 1 つの無効な文字が含まれています。

-又は-

アーカイブ エントリを抽出すると、 destinationDirectoryNameで指定されたディレクトリの外部にあるファイルが作成されます。 (たとえば、エントリ名に親ディレクトリ アクセサーが含まれている場合に発生する可能性があります)。

-又は-

抽出するアーカイブ エントリの名前は、既に抽出されているか、 destinationDirectoryNameに存在するエントリと同じです。

呼び出し元には、アーカイブまたは宛先ディレクトリにアクセスするために必要なアクセス許可がありません。

destinationDirectoryName には無効な形式が含まれています。

source ストリームに含まれるアーカイブが有効な zip アーカイブではありません。

-又は-

アーカイブ エントリが見つからないか、破損しています。

-又は-

アーカイブ エントリは、サポートされていない圧縮方法を使用して圧縮されました。

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

注釈

このメソッドは、指定したディレクトリとすべてのサブディレクトリを作成します。 宛先ディレクトリは既に存在できません。 destinationDirectoryName内のパスまたは source パラメーターに含まれる zip アーカイブ内のファイルの検証に関連する例外は、抽出前にスローされます。 それ以外の場合、抽出中にエラーが発生した場合、アーカイブは部分的に抽出されたままになります。 抽出された各ファイルには、ソース エントリがアーカイブのルートに対して持っているのと同じ destinationDirectoryName で指定されたディレクトリへの相対パスがあります。

アーカイブするファイルに無効な最終変更時刻がある場合は、zip タイムスタンプ形式で表される最初の日付と時刻 (1980 年 1 月 1 日の午前 0 時) が使用されます。

Warning

このメソッドでは、圧縮されていないサイズの合計やアーカイブから抽出されたエントリの数は制限されません。 信頼されていないソースからのアーカイブを処理する場合は、 ZipArchiveを使用してエントリを手動で反復処理し、圧縮されていない合計サイズとエントリの数がシナリオで許容できる制限内にあることを検証します。

適用対象

ExtractToDirectoryAsync(Stream, String, Encoding, CancellationToken)

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

指定したストリームに格納されている zip アーカイブからすべてのファイルを非同期に抽出し、ファイル システム上の指定された宛先ディレクトリに配置し、エントリ名に指定した文字エンコードを使用します。

public static System.Threading.Tasks.Task ExtractToDirectoryAsync(System.IO.Stream source, string destinationDirectoryName, System.Text.Encoding? entryNameEncoding, System.Threading.CancellationToken cancellationToken = default);
static member ExtractToDirectoryAsync : System.IO.Stream * string * System.Text.Encoding * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function ExtractToDirectoryAsync (source As Stream, destinationDirectoryName As String, entryNameEncoding As Encoding, Optional cancellationToken As CancellationToken = Nothing) As Task

パラメーター

source
Stream

zip アーカイブの抽出元となるストリーム。

destinationDirectoryName
String

相対パスまたは絶対パスとして指定された、抽出されたファイルを配置するディレクトリへのパス。 相対パスは、現在の作業ディレクトリに対する相対パスとして解釈されます。

entryNameEncoding
Encoding

このアーカイブ内のエントリ名とコメントを読み書きするときに使用するエンコード。 このパラメーターの値は、エントリ名またはコメントに UTF-8 エンコードをサポートしていない zip アーカイブ ツールおよびライブラリとの相互運用性にエンコードが必要な場合にのみ指定します。

cancellationToken
CancellationToken

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

返品

例外

destinationDirectoryNameEmpty、空白のみを含む、または少なくとも 1 つの無効な文字が含まれています。

-又は-

entryNameEncoding は UTF-8 以外の Unicode エンコードに設定されています。

destinationDirectoryName または sourcenull

destinationDirectoryNameで指定されたパスが、システム定義の最大長を超えています。

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

アーカイブ内のエントリの名前が Emptyされているか、空白のみを含むか、少なくとも 1 つの無効な文字が含まれています。

-又は-

アーカイブ エントリを抽出すると、 destinationDirectoryNameで指定されたディレクトリの外部にあるファイルが作成されます。 (たとえば、エントリ名に親ディレクトリ アクセサーが含まれている場合に発生する可能性があります)。

-又は-

抽出するアーカイブ エントリの名前は、既に抽出されているか、 destinationDirectoryNameに存在するエントリと同じです。

呼び出し元には、アーカイブまたは宛先ディレクトリにアクセスするために必要なアクセス許可がありません。

destinationDirectoryName には無効な形式が含まれています。

source ストリームに含まれるアーカイブが有効な zip アーカイブではありません。

-又は-

アーカイブ エントリが見つからないか、破損しています。

-又は-

アーカイブ エントリは、サポートされていない圧縮方法を使用して圧縮されました。

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

注釈

このメソッドは、指定したディレクトリとすべてのサブディレクトリを作成します。 宛先ディレクトリは既に存在できません。 destinationDirectoryName内のパスまたは source パラメーターに含まれる zip アーカイブ内のファイルの検証に関連する例外は、抽出前にスローされます。 それ以外の場合、抽出中にエラーが発生した場合、アーカイブは部分的に抽出されたままになります。 抽出された各ファイルには、ソース エントリがアーカイブのルートに対して持っているのと同じ destinationDirectoryName で指定されたディレクトリへの相対パスがあります。

アーカイブするファイルに無効な最終変更時刻がある場合は、zip タイムスタンプ形式で表される最初の日付と時刻 (1980 年 1 月 1 日の午前 0 時) が使用されます。

Warning

このメソッドでは、圧縮されていないサイズの合計やアーカイブから抽出されたエントリの数は制限されません。 信頼されていないソースからのアーカイブを処理する場合は、 ZipArchiveを使用してエントリを手動で反復処理し、圧縮されていない合計サイズとエントリの数がシナリオで許容できる制限内にあることを検証します。

適用対象