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
ソース:
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
ソース:
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 つ以上含みます。

destinationDirectoryNamenullです。

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

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

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

-又は-

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

-又は-

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

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

destinationDirectoryName が無効な形式です。

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

-又は-

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

注釈

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

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

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

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

適用対象