ZipFileExtensions.ExtractToDirectory メソッド

定義

オーバーロード

ExtractToDirectory(ZipArchive, String)

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

ExtractToDirectory(ZipArchive, String, Boolean)

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

ExtractToDirectory(ZipArchive, String)

ソース:
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

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

例外

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

destinationDirectoryNamenullです。

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

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

アーカイブ内のエントリの名前が 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

注釈

このメソッドは、 で指定されたディレクトリを destinationDirectoryName作成します。 メソッドは、zip アーカイブ内の階層を反映するサブディレクトリも作成します。 抽出中にエラーが発生した場合、アーカイブは部分的に抽出されたままになります。 抽出された各ファイルには、 で destinationDirectoryName 指定されたディレクトリへの相対パスが、アーカイブのルートへのソース エントリと同じです。

適用対象

ExtractToDirectory(ZipArchive, String, Boolean)

ソース:
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 それ以外の場合は 。

例外

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

destinationArchiveFileNamenullです。

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

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

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

- または -

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

- または -

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

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

destinationArchiveFileName の形式が正しくありません。

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

- または -

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

注釈

指定したディレクトリが既に存在する可能性があります。 このメソッドは、必要に応じて、指定したディレクトリとすべてのサブディレクトリを作成します。

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

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

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

適用対象