ZipFile.ExtractToDirectory メソッド

定義

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

オーバーロード

ExtractToDirectory(String, String, Encoding, Boolean)

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

ExtractToDirectory(Stream, String, Encoding, Boolean)

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

ExtractToDirectory(String, String, Encoding)

指定した zip アーカイブのすべてのファイルをファイル システムのディレクトリに抽出し、エントリ名に指定した文字エンコーディングを使用します。

ExtractToDirectory(String, String, Boolean)

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

ExtractToDirectory(Stream, String, Boolean)

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

ExtractToDirectory(String, String)

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

ExtractToDirectory(Stream, String)

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

ExtractToDirectory(Stream, String, Encoding)

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

ExtractToDirectory(String, String, Encoding, Boolean)

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

public:
 static void ExtractToDirectory(System::String ^ sourceArchiveFileName, System::String ^ destinationDirectoryName, System::Text::Encoding ^ entryNameEncoding, bool overwriteFiles);
public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName, System.Text.Encoding? entryNameEncoding, bool overwriteFiles);
public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName, System.Text.Encoding entryNameEncoding, bool overwriteFiles);
static member ExtractToDirectory : string * string * System.Text.Encoding * bool -> unit
Public Shared Sub ExtractToDirectory (sourceArchiveFileName As String, destinationDirectoryName As String, entryNameEncoding As Encoding, overwriteFiles As Boolean)

パラメーター

sourceArchiveFileName
String

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

destinationDirectoryName
String

ファイル システム上のコピー先ディレクトリへのパス。

entryNameEncoding
Encoding

この ZipArchive のエントリ名の読み取り時に使用するエンコード。

overwriteFiles
Boolean

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

例外

sourceArchiveFileName または destinationDirectoryName は長さ 0 の文字列で、空白のみが含まれるか、または InvalidPathChars で定義される 1 つまたは複数の無効な文字が含まれます。

- または -

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

sourceArchiveFileName または destinationDirectoryNamenull です。

sourceArchiveFileName または destinationDirectoryName で、システム定義の最大長を超えるパス、ファイル名、またはその両方を指定します。

sourceArchiveFileName または destinationDirectoryName で指定されたパスが正しくありません (マップされていないドライブ上にあるなど)。

overwriteFilesfalse で、抽出するアーカイブ エントリの名前は、 に既に destinationDirectoryName存在するファイルと同じです。

- または -

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

- または -

ZipArchiveEntry の名前は長さ 0 の文字列で、空白のみが含まれるか、または InvalidPathChars で定義される 1 つまたは複数の無効な文字が含まれます。

- または -

ZipArchiveEntry を抽出すると、(親ディレクトリのアクセサーによってなど) コピー先のディレクトリの外部にあるターゲット ファイルが生成されます。

- または -

ZipArchiveEntry には、同じアーカイブから既に抽出されたエントリと同じ名前が付けられています。

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

sourceArchiveFileName または destinationDirectoryName の形式が正しくありません。

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

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

- または -

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

- または -

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

注釈

アーカイブの抽出中にエラーが発生した場合、アーカイブは部分的に抽出されたままになります。

各エントリは、抽出されたファイルがアーカイブに対するエントリと同じ相対パスを destinationDirectoryName 持つように抽出されます。

パラメーターと destinationDirectoryName パラメーターはsourceArchiveFileName、相対パスと絶対パスの両方を受け入れます。 相対パスは、現在の作業ディレクトリに対して相対的に解釈されます。

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

適用対象

ExtractToDirectory(Stream, String, Encoding, Boolean)

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

public:
 static void ExtractToDirectory(System::IO::Stream ^ source, System::String ^ destinationDirectoryName, System::Text::Encoding ^ entryNameEncoding, bool overwriteFiles);
public static void ExtractToDirectory (System.IO.Stream source, string destinationDirectoryName, System.Text.Encoding? entryNameEncoding, bool overwriteFiles);
static member ExtractToDirectory : System.IO.Stream * string * System.Text.Encoding * bool -> unit
Public Shared Sub ExtractToDirectory (source As Stream, destinationDirectoryName As String, entryNameEncoding As Encoding, overwriteFiles As Boolean)

パラメーター

source
Stream

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

destinationDirectoryName
String

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

entryNameEncoding
Encoding

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

overwriteFiles
Boolean

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

例外

destinationDirectoryName> は、 Empty空白のみを含むか、少なくとも 1 つの無効な文字を含みます。

- または -

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

destinationDirectoryName または sourcenull です。

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

指定されたパスが正しくありません (たとえば、マップされていないドライブにあるなど)。

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

- または -

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

- または -

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

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

destinationDirectoryName に無効な書式指定が格納されています。

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

- または -

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

- または -

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

注釈

このメソッドは、指定されたディレクトリとすべてのサブディレクトリを作成します。 宛先ディレクトリは既に存在できません。 パラメーターに含まれる source zip アーカイブ内の または ファイルのdestinationDirectoryNameパスの検証に関連する例外は、抽出前にスローされます。 それ以外の場合、抽出中にエラーが発生した場合、アーカイブは部分的に抽出されたままになります。 抽出された各ファイルは、アーカイブのルートへの destinationDirectoryName ソース エントリと同じ相対パスを持ちます。 アーカイブするファイルの最終変更時刻が無効な場合は、Zip タイムスタンプ形式で表される最初の日付と時刻 (1980 年 1 月 1 日午前 0 時) が使用されます。

適用対象

ExtractToDirectory(String, String, Encoding)

指定した zip アーカイブのすべてのファイルをファイル システムのディレクトリに抽出し、エントリ名に指定した文字エンコーディングを使用します。

public:
 static void ExtractToDirectory(System::String ^ sourceArchiveFileName, System::String ^ destinationDirectoryName, System::Text::Encoding ^ entryNameEncoding);
public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName, System.Text.Encoding entryNameEncoding);
public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName, System.Text.Encoding? entryNameEncoding);
static member ExtractToDirectory : string * string * System.Text.Encoding -> unit
Public Shared Sub ExtractToDirectory (sourceArchiveFileName As String, destinationDirectoryName As String, entryNameEncoding As Encoding)

パラメーター

sourceArchiveFileName
String

抽出するアーカイブのパス。

destinationDirectoryName
String

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

entryNameEncoding
Encoding

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

例外

destinationDirectoryName または sourceArchiveFileNameEmpty であるか、空白文字のみが含まれているか、無効な文字が少なくとも 1 つ含まれています。

- または -

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

destinationDirectoryName または sourceArchiveFileNamenull です。

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

指定されたパスが正しくありません (たとえば、マップされていないドライブにあるなど)。

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

- または -

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

- または -

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

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

destinationDirectoryName または sourceArchiveFileName に無効な書式が含まれています。

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

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

- または -

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

- または -

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

注釈

このメソッドは、必要に応じて、指定されたディレクトリとすべてのサブディレクトリを作成します。 または sourceArchiveFileName パラメーターのパスの検証にdestinationDirectoryName関連する例外は、抽出前にスローされます。 それ以外の場合、抽出中にエラーが発生した場合、アーカイブは部分的に抽出されたままになります。 抽出された各ファイルには、 で destinationDirectoryName 指定されたディレクトリへの相対パスが、アーカイブのルートへのソース エントリと同じです。

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

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

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

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

適用対象

ExtractToDirectory(String, String, Boolean)

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

public:
 static void ExtractToDirectory(System::String ^ sourceArchiveFileName, System::String ^ destinationDirectoryName, bool overwriteFiles);
public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName, bool overwriteFiles);
static member ExtractToDirectory : string * string * bool -> unit
Public Shared Sub ExtractToDirectory (sourceArchiveFileName As String, destinationDirectoryName As String, overwriteFiles As Boolean)

パラメーター

sourceArchiveFileName
String

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

destinationDirectoryName
String

ファイル システム上のコピー先ディレクトリへのパス。

overwriteFiles
Boolean

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

例外

sourceArchiveFileName または destinationDirectoryName は長さ 0 の文字列で、空白のみが含まれるか、または InvalidPathChars で定義される 1 つまたは複数の無効な文字が含まれます。

sourceArchiveFileName または destinationDirectoryNamenull です。

sourceArchiveFileName または destinationDirectoryName で、システム定義の最大長を超えるパス、ファイル名、またはその両方を指定します。

sourceArchiveFileName または destinationDirectoryName で指定されたパスが正しくありません (マップされていないドライブ上にあるなど)。

overwriteFiles は で falsedestinationDirectoryName 抽出されるファイルと同じ名前のファイルが既に含まれています。

- または -

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

- または -

ZipArchiveEntry の名前は長さ 0 の文字列で、空白のみが含まれるか、または InvalidPathChars で定義される 1 つまたは複数の無効な文字が含まれます。

- または -

ZipArchiveEntry を抽出すると、(親ディレクトリのアクセサーによってなど) コピー先のディレクトリの外部にあるターゲット ファイルが生成されます。

- または -

ZipArchiveEntryには、既に抽出されているのと同じアーカイブからのエントリと同じ名前があります。

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

sourceArchiveFileName または destinationDirectoryName の形式が正しくありません。

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

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

- または -

ZipArchiveEntry が見つからないか、破損しています。

- または -

ZipArchiveEntry は、サポートされていない圧縮方法を使用して圧縮されています。

注釈

アーカイブの抽出中にエラーが発生した場合、アーカイブは部分的に抽出されたままになります。

各エントリは、抽出されたファイルがアーカイブに対するエントリと同じ相対パスを destinationDirectoryName 持つように抽出されます。

パラメーターと destinationDirectoryName パラメーターはsourceArchiveFileName、相対パスと絶対パスの両方を受け入れます。 相対パスは、現在の作業ディレクトリに対して相対的に解釈されます。

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

適用対象

ExtractToDirectory(Stream, String, Boolean)

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

public:
 static void ExtractToDirectory(System::IO::Stream ^ source, System::String ^ destinationDirectoryName, bool overwriteFiles);
public static void ExtractToDirectory (System.IO.Stream source, string destinationDirectoryName, bool overwriteFiles);
static member ExtractToDirectory : System.IO.Stream * string * bool -> unit
Public Shared Sub ExtractToDirectory (source As Stream, destinationDirectoryName As String, overwriteFiles As Boolean)

パラメーター

source
Stream

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

destinationDirectoryName
String

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

overwriteFiles
Boolean

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

例外

destinationDirectoryName> は 、 Empty空白のみを含むか、少なくとも 1 つの無効な文字を含みます。

destinationDirectoryName または sourcenull です。

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

指定されたパスが正しくありません (たとえば、マップされていないドライブにあるなど)。

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

- または -

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

- または -

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

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

destinationDirectoryName に無効な書式指定が格納されています。

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

- または -

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

- または -

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

注釈

このメソッドは、指定したディレクトリとすべてのサブディレクトリを作成します。 宛先ディレクトリは既に存在できません。 パラメーターに含まれる source zip アーカイブ内の または ファイルのdestinationDirectoryNameパスの検証に関連する例外は、抽出の前にスローされます。 それ以外の場合、抽出中にエラーが発生した場合、アーカイブは部分的に抽出されたままになります。 抽出された各ファイルには、 で destinationDirectoryName 指定されたディレクトリへの相対パスが、アーカイブのルートへのソース エントリと同じです。 アーカイブするファイルの最終変更時刻が無効な場合は、Zip タイムスタンプ形式 (1980 年 1 月 1 日午前 0 時) で表される最初の日付と時刻が使用されます。

適用対象

ExtractToDirectory(String, String)

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

public:
 static void ExtractToDirectory(System::String ^ sourceArchiveFileName, System::String ^ destinationDirectoryName);
public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName);
static member ExtractToDirectory : string * string -> unit
Public Shared Sub ExtractToDirectory (sourceArchiveFileName As String, destinationDirectoryName As String)

パラメーター

sourceArchiveFileName
String

抽出するアーカイブのパス。

destinationDirectoryName
String

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

例外

destinationDirectoryName または sourceArchiveFileNameEmpty であるか、空白文字のみが含まれているか、無効な文字が少なくとも 1 つ含まれています。

destinationDirectoryName または sourceArchiveFileNamenull です。

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

指定されたパスが正しくありません (たとえば、マップされていないドライブにあるなど)。

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

- または -

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

- または -

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

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

destinationDirectoryName または sourceArchiveFileName に無効な書式が含まれています。

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

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

- または -

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

- または -

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

この例では、 クラスを使用して zip アーカイブを作成および抽出する方法を ZipFile 示します。 フォルダーの内容を zip アーカイブに圧縮し、その内容を新しいフォルダーに抽出します。 ZipFile クラスを使用するには、プロジェクトの System.IO.Compression.FileSystem アセンブリを参照する必要があります。

using System;
using System.IO.Compression;

class Program
{
    static void Main(string[] args)
    {
        string startPath = @".\start";
        string zipPath = @".\result.zip";
        string extractPath = @".\extract";

        ZipFile.CreateFromDirectory(startPath, zipPath);

        ZipFile.ExtractToDirectory(zipPath, extractPath);
    }
}
open System.IO.Compression

let startPath = @".\start"
let zipPath = @".\result.zip"
let extractPath = @".\extract"

ZipFile.CreateFromDirectory(startPath, zipPath)

ZipFile.ExtractToDirectory(zipPath, extractPath)
Imports System.IO.Compression

Module Module1

    Sub Main()
        Dim startPath As String = ".\start"
        Dim zipPath As String = ".\result.zip"
        Dim extractPath As String = ".\extract"

        ZipFile.CreateFromDirectory(startPath, zipPath)

        ZipFile.ExtractToDirectory(zipPath, extractPath)
    End Sub

End Module

注釈

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

適用対象

ExtractToDirectory(Stream, String)

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

public:
 static void ExtractToDirectory(System::IO::Stream ^ source, System::String ^ destinationDirectoryName);
public static void ExtractToDirectory (System.IO.Stream source, string destinationDirectoryName);
static member ExtractToDirectory : System.IO.Stream * string -> unit
Public Shared Sub ExtractToDirectory (source As Stream, destinationDirectoryName As String)

パラメーター

source
Stream

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

destinationDirectoryName
String

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

例外

destinationDirectoryName> は、 Empty空白のみを含むか、少なくとも 1 つの無効な文字を含みます。

destinationDirectoryName または sourcenull です。

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

指定されたパスが正しくありません (たとえば、マップされていないドライブにあるなど)。

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

- または -

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

- または -

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

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

destinationDirectoryName に無効な書式指定が格納されています。

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

- または -

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

- または -

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

注釈

このメソッドは、指定されたディレクトリとすべてのサブディレクトリを作成します。 宛先ディレクトリは既に存在できません。 パラメーターに含まれる source zip アーカイブ内の または ファイルのdestinationDirectoryNameパスの検証に関連する例外は、抽出前にスローされます。 それ以外の場合、抽出中にエラーが発生した場合、アーカイブは部分的に抽出されたままになります。 抽出された各ファイルは、アーカイブのルートへの destinationDirectoryName ソース エントリと同じ相対パスを持ちます。 アーカイブするファイルの最終変更時刻が無効な場合は、Zip タイムスタンプ形式で表される最初の日付と時刻 (1980 年 1 月 1 日午前 0 時) が使用されます。

適用対象

ExtractToDirectory(Stream, String, Encoding)

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

public:
 static void ExtractToDirectory(System::IO::Stream ^ source, System::String ^ destinationDirectoryName, System::Text::Encoding ^ entryNameEncoding);
public static void ExtractToDirectory (System.IO.Stream source, string destinationDirectoryName, System.Text.Encoding? entryNameEncoding);
static member ExtractToDirectory : System.IO.Stream * string * System.Text.Encoding -> unit
Public Shared Sub ExtractToDirectory (source As Stream, destinationDirectoryName As String, entryNameEncoding As Encoding)

パラメーター

source
Stream

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

destinationDirectoryName
String

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

entryNameEncoding
Encoding

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

例外

destinationDirectoryName> は、 Empty空白のみを含むか、少なくとも 1 つの無効な文字を含みます。

- または -

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

destinationDirectoryName または sourcenull です。

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

指定されたパスが正しくありません (たとえば、マップされていないドライブにあるなど)。

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

- または -

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

- または -

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

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

destinationDirectoryName に無効な書式指定が格納されています。

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

- または -

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

- または -

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

注釈

このメソッドは、指定されたディレクトリとすべてのサブディレクトリを作成します。 宛先ディレクトリは既に存在できません。 パラメーターに含まれる source zip アーカイブ内の または ファイルのdestinationDirectoryNameパスの検証に関連する例外は、抽出前にスローされます。 それ以外の場合、抽出中にエラーが発生した場合、アーカイブは部分的に抽出されたままになります。 抽出された各ファイルは、アーカイブのルートへの destinationDirectoryName ソース エントリと同じ相対パスを持ちます。 アーカイブするファイルの最終変更時刻が無効な場合は、Zip タイムスタンプ形式で表される最初の日付と時刻 (1980 年 1 月 1 日午前 0 時) が使用されます。

適用対象