Language

ZipFileExtensions.ExtractToDirectory メソッド

定義

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

オーバーロード

Name 説明
ExtractToDirectory(ZipArchive, String, ZipExtractionOptions)
ExtractToDirectory(ZipArchive, String, Boolean)

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

ExtractToDirectory(ZipArchive, String)

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

ExtractToDirectory(ZipArchive, String, ZipExtractionOptions)

ソース:
ZipFileExtensions.ZipArchive.Extract.cs
public:
[System::Runtime::CompilerServices::Extension]
 static void ExtractToDirectory(System::IO::Compression::ZipArchive ^ source, System::String ^ destinationDirectoryName, System::IO::Compression::ZipExtractionOptions ^ options);
public static void ExtractToDirectory(this System.IO.Compression.ZipArchive source, string destinationDirectoryName, System.IO.Compression.ZipExtractionOptions options);
static member ExtractToDirectory : System.IO.Compression.ZipArchive * string * System.IO.Compression.ZipExtractionOptions -> unit
<Extension()>
Public Sub ExtractToDirectory (source As ZipArchive, destinationDirectoryName As String, options As ZipExtractionOptions)

パラメーター

source
ZipArchive
destinationDirectoryName
String

抽出されたファイルを配置するディレクトリへのパス。 ディレクトリは既に存在できます。 不足しているディレクトリは、エントリを抽出するときに必要に応じて作成されます。

注釈

Warning

このメソッドを使用して、信頼されていないアーカイブを抽出することはできません。 信頼されていないアーカイブを安全に抽出するために必要なサイズ制限、エントリ数の制限、またはその他のポリシーは適用されません。 信頼されていないソースからアーカイブを安全に抽出する方法の詳細については、「 zip アーカイブと tar アーカイブを使用するためのベスト プラクティス」を参照してください。

destinationDirectoryNameで指定されたディレクトリは既に存在できます。 このメソッドは、エントリを抽出するときに必要に応じて、宛先ディレクトリ、その不足している親ディレクトリ、およびサブディレクトリを作成します。 アーカイブが空の場合、このメソッドは宛先ディレクトリを作成しません。

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

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

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

OverwriteFilesをtrueに設定して、既存のファイルを上書きします。 既定値は false であり、抽出するファイルが既に存在する場合、抽出によって IOException がスローされます。

Passwordを使用して、暗号化されたエントリのパスワードを指定します。

EntryNameEncoding は、このオーバーロードでは使用されません。 エントリ名とコメントは、 source アーカイブを開いたときに指定されたエンコードを使用してデコードされます。

アーカイブ内のシンボリック リンクは、シンボリック リンクとして再作成されません。 destinationDirectoryNameまたはその親ディレクトリのいずれかが既存のジャンクションまたはシンボリック リンクである場合、リンクがフォローされ、最終的なターゲット フォルダーへの書き込みが抽出されます。

適用対象

ExtractToDirectory(ZipArchive, String, Boolean)

ソース:
ZipFileExtensions.ZipArchive.Extract.cs
ソース:
ZipFileExtensions.ZipArchive.Extract.cs
ソース:
ZipFileExtensions.ZipArchive.Extract.cs
ソース:
ZipFileExtensions.ZipArchive.Extract.cs
ソース:
ZipFileExtensions.ZipArchive.Extract.cs

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

public:
[System::Runtime::CompilerServices::Extension]
 static void ExtractToDirectory(System::IO::Compression::ZipArchive ^ source, System::String ^ destinationDirectoryName, bool overwriteFiles);
public static void ExtractToDirectory(this System.IO.Compression.ZipArchive source, string destinationDirectoryName, bool overwriteFiles);
static member ExtractToDirectory : System.IO.Compression.ZipArchive * string * bool -> unit
<Extension()>
Public Sub ExtractToDirectory (source As ZipArchive, destinationDirectoryName As String, overwriteFiles As Boolean)

パラメーター

source
ZipArchive

抽出する ZipArchive 。

destinationDirectoryName
String

ファイル システム上の宛先ディレクトリへのパス。 相対パスと絶対パスのどちらでも構いません。 相対パスは、現在の作業ディレクトリに対する相対パスとして解釈されます。 ディレクトリは既に存在できます。 不足しているディレクトリは、エントリを抽出するときに必要に応じて作成されます。

overwriteFiles
Boolean

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

例外

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

destinationDirectoryName は nullです。

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

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

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

-又は-

ZipArchiveEntryを抽出すると、destinationDirectoryNameの外部にある宛先ファイルが生成されます (たとえば、エントリ名に親ディレクトリ アクセサーが含まれている場合)。

-又は-

ZipArchiveEntryは、同じアーカイブから既に抽出されたエントリと同じ名前を持ちます。

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

destinationDirectoryName が無効な形式です。

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

-又は-

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

注釈

Warning

このメソッドを使用して、信頼されていないアーカイブを抽出することはできません。 信頼されていないアーカイブを安全に抽出するために必要なサイズ制限、エントリ数の制限、またはその他のポリシーは適用されません。 信頼されていないソースからアーカイブを安全に抽出する方法の詳細については、「 zip アーカイブと tar アーカイブを使用するためのベスト プラクティス」を参照してください。

destinationDirectoryNameで指定されたディレクトリは既に存在できます。 このメソッドは、エントリを抽出するときに必要に応じて、宛先ディレクトリ、その不足している親ディレクトリ、およびサブディレクトリを作成します。 アーカイブが空の場合、このメソッドは宛先ディレクトリを作成しません。

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

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

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

適用対象

ExtractToDirectory(ZipArchive, String)

ソース:
ZipFileExtensions.ZipArchive.Extract.cs
ソース:
ZipFileExtensions.ZipArchive.Extract.cs
ソース:
ZipFileExtensions.ZipArchive.Extract.cs
ソース:
ZipFileExtensions.ZipArchive.Extract.cs
ソース:
ZipFileExtensions.ZipArchive.Extract.cs

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

public:
[System::Runtime::CompilerServices::Extension]
 static void ExtractToDirectory(System::IO::Compression::ZipArchive ^ source, System::String ^ destinationDirectoryName);
public static void ExtractToDirectory(this System.IO.Compression.ZipArchive source, string destinationDirectoryName);
static member ExtractToDirectory : System.IO.Compression.ZipArchive * string -> unit
<Extension()>
Public Sub ExtractToDirectory (source As ZipArchive, destinationDirectoryName As String)

パラメーター

source
ZipArchive

ファイルを抽出する zip アーカイブ。

destinationDirectoryName
String

抽出されたファイルを配置するディレクトリへのパス。 相対パスまたは絶対パスを指定できます。 相対パスは、現在の作業ディレクトリに対する相対パスとして解釈されます。 ディレクトリは既に存在できます。 不足しているディレクトリは、エントリを抽出するときに必要に応じて作成されます。

例外

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

destinationDirectoryName は nullです。

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

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

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

-又は-

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

-又は-

アーカイブ内の 2 つ以上のエントリの名前は同じです。

呼び出し元には、宛先ディレクトリに書き込むのに必要なアクセス許可がありません。

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

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

-又は-

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

例

次の例は、既存のファイルから zip アーカイブに新しいエントリを作成し、そのアーカイブを新しいディレクトリに抽出する方法を示しています。

using System;
using System.IO;
using System.IO.Compression;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string zipPath = @"c:\users\exampleuser\start.zip";
            string extractPath = @"c:\users\exampleuser\extract";
            string newFile = @"c:\users\exampleuser\NewFile.txt";

            using (ZipArchive archive = ZipFile.Open(zipPath, ZipArchiveMode.Update))
            {
                archive.CreateEntryFromFile(newFile, "NewEntry.txt");
                archive.ExtractToDirectory(extractPath);
            }
        }
    }
}
Imports System.IO
Imports System.IO.Compression

Module Module1

    Sub Main()
        Dim zipPath As String = "c:\users\exampleuser\end.zip"
        Dim extractPath As String = "c:\users\exampleuser\extract"
        Dim newFile As String = "c:\users\exampleuser\NewFile.txt"

        Using archive As ZipArchive = ZipFile.Open(zipPath, ZipArchiveMode.Update)
            archive.CreateEntryFromFile(newFile, "NewEntry.txt", CompressionLevel.Fastest)
            archive.ExtractToDirectory(extractPath)
        End Using
    End Sub

End Module

注釈

Warning

このメソッドを使用して、信頼されていないアーカイブを抽出することはできません。 信頼されていないアーカイブを安全に抽出するために必要なサイズ制限、エントリ数の制限、またはその他のポリシーは適用されません。 信頼されていないソースからアーカイブを安全に抽出する方法の詳細については、「 zip アーカイブと tar アーカイブを使用するためのベスト プラクティス」を参照してください。

destinationDirectoryNameで指定されたディレクトリは既に存在できます。 このメソッドは、エントリを抽出するときに必要に応じて、宛先ディレクトリ、その不足している親ディレクトリ、およびサブディレクトリを作成します。 アーカイブが空の場合、このメソッドは宛先ディレクトリを作成しません。

抽出中にエラーが発生した場合、アーカイブは部分的に抽出されたままになります。 抽出された各ファイルには、ソース エントリがアーカイブのルートに対して持っているのと同じ destinationDirectoryName で指定されたディレクトリへの相対パスがあります。

適用対象