ZipFileExtensions.ExtractToDirectory ZipFileExtensions.ExtractToDirectory ZipFileExtensions.ExtractToDirectory ZipFileExtensions.ExtractToDirectory Method

定義

オーバーロード

ExtractToDirectory(ZipArchive, String) ExtractToDirectory(ZipArchive, String) ExtractToDirectory(ZipArchive, String) ExtractToDirectory(ZipArchive, String)

zip アーカイブのすべてのファイルをファイル システムのディレクトリに抽出します。Extracts all the files in the zip archive to a directory on the file system.

ExtractToDirectory(ZipArchive, String, Boolean) ExtractToDirectory(ZipArchive, String, Boolean) ExtractToDirectory(ZipArchive, String, Boolean) ExtractToDirectory(ZipArchive, String, Boolean)

アーカイブのすべてのファイルをファイル システムのディレクトリに抽出します。Extracts all of the files in the archive to a directory on the file system.

ExtractToDirectory(ZipArchive, String) ExtractToDirectory(ZipArchive, String) ExtractToDirectory(ZipArchive, String) ExtractToDirectory(ZipArchive, String)

zip アーカイブのすべてのファイルをファイル システムのディレクトリに抽出します。Extracts all the files in the zip archive to a directory on the file system.

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 ZipArchive ZipArchive ZipArchive

ファイルの抽出元となる zip アーカイブ。The zip archive to extract files from.

destinationDirectoryName
String String String String

抽出ファイルを置くディレクトリのパス。The path to the directory to place the extracted files in. 相対パスまたは絶対パスを指定できます。You can specify either a relative or an absolute path. 相対パスは、現在の作業ディレクトリに対して相対的に解釈されます。A relative path is interpreted as relative to the current working directory.

例外

destinationDirectoryNameEmpty であるか、空白文字のみが含まれているか、無効な文字が少なくとも 1 つ含まれています。destinationDirectoryName is Empty, contains only white space, or contains at least one invalid character.

destinationDirectoryNamenull です。destinationDirectoryName is null.

指定されたパスがシステムで定義されている最大長を超えています。The specified path exceeds the system-defined maximum length.

指定されたパスが正しくありません (たとえば、マップされていないドライブにあるなど)。The specified path is invalid (for example, it is on an unmapped drive).

destinationDirectoryName で指定されたディレクトリは既に存在します。The directory specified by destinationDirectoryName already exists.

- または --or- アーカイブ内のエントリの名前が Empty であるか、名前に空白だけが含まれているか、無効な文字が少なくとも 1 つ含まれています。The name of an entry in the archive is Empty, contains only white space, or contains at least one invalid character.

または-or- アーカイブからエントリを抽出すると、destinationDirectoryName で指定されているディレクトリの外部にファイルが作成されます。Extracting an entry from the archive would create a file that is outside the directory specified by destinationDirectoryName. (たとえば、エントリ名に親ディレクトリのアクセサーが含まれている場合に発生する可能性があります。)(For example, this might happen if the entry name contains parent directory accessors.) または-or- アーカイブの複数のエントリの名前が同じです。Two or more entries in the archive have the same name.

呼び出し元に、目的のディレクトリに書き込みするために必要な許可がありません。The caller does not have the required permission to write to the destination directory.

destinationDirectoryName に無効な書式指定が格納されています。destinationDirectoryName contains an invalid format.

アーカイブ エントリが見つからないか、破損しています。An archive entry cannot be found or is corrupt.

- または --or-

アーカイブ エントリはサポートされていない圧縮方法を使用して圧縮されました。An archive entry was compressed by using a compression method that is not supported.

次の例では、既存のファイルから zip アーカイブに新しいエントリを作成し、アーカイブを新しいディレクトリに抽出する方法を示します。The following example shows how to create a new entry in a zip archive from an existing file, and extract the archive to a new directory. このコード例をコンパイラするには、プロジェクトでアセンブリSystem.IO.CompressionSystem.IO.Compression.FileSystemアセンブリを参照する必要があります。In order to compiler this code example, you must reference the System.IO.Compression and System.IO.Compression.FileSystem assemblies in your project.

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指定されたディレクトリを作成します。This method creates the directory specified by destinationDirectoryName. コピー先のディレクトリが既に存在する場合、このメソッドは上書きしません。例外がIOExceptionスローされます。If the destination directory already exists, this method does not overwrite it; it throws an IOException exception. また、メソッドは、zip アーカイブ内の階層を反映するサブディレクトリも作成します。The method also creates subdirectories that reflect the hierarchy in the zip archive. 抽出中にエラーが発生した場合は、アーカイブが部分的に抽出されたままになります。If an error occurs during extraction, the archive remains partially extracted. 抽出された各ファイルの相対パスは、ソースエントリdestinationDirectoryNameがアーカイブのルートにあるため、で指定したディレクトリと同じ相対パスになります。Each extracted file has the same relative path to the directory specified by destinationDirectoryName as its source entry has to the root of the archive.

ExtractToDirectory(ZipArchive, String, Boolean) ExtractToDirectory(ZipArchive, String, Boolean) ExtractToDirectory(ZipArchive, String, Boolean) ExtractToDirectory(ZipArchive, String, Boolean)

アーカイブのすべてのファイルをファイル システムのディレクトリに抽出します。Extracts all of the files in the archive to a directory on the file system.

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 ZipArchive ZipArchive

抽出される ZipArchiveThe ZipArchive to extract.

destinationDirectoryName
String String String String

ファイル システム上のコピー先ディレクトリへのパス。The path to the destination directory on the file system. 相対パスと絶対パスのどちらでも構いません。The path can be relative or absolute. 相対パスは、現在の作業ディレクトリに対して相対的に解釈されます。A relative path is interpreted as relative to the current working directory.

overwriteFiles
Boolean Boolean Boolean Boolean

既存のファイルが上書きされることを示す場合は true。それ以外の場合は falsetrue to indicate that existing files are to be overwritten; false otherwise.

例外

destinationArchiveFileName は長さ 0 の文字列で、空白のみが含まれるか、または InvalidPathChars で定義される 1 つまたは複数の無効な文字が含まれます。destinationArchiveFileName is a zero-length string, contains only whitespace, or contains one or more invalid characters as defined by InvalidPathChars.

destinationArchiveFileNamenull です。destinationArchiveFileName is null.

指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。The specified path, file name, or both exceed the system-defined maximum length.

指定されたパスが無効です (たとえば、マップされていないドライブにあるなど)。The specified path is invalid, (for example, it is on an unmapped drive).

ZipArchiveEntry の名前は長さ 0 の文字列で、空白のみが含まれるか、または InvalidPathChars で定義される 1 つまたは複数の無効な文字が含まれます。The name of a ZipArchiveEntry is zero-length, contains only whitespace, or contains one or more invalid characters as defined by InvalidPathChars.

または-or-

ZipArchiveEntry を抽出すると、destinationArchiveFileName の外部にあるターゲット ファイルが生成されます (たとえば、エントリ名に親ディレクトリのアクセサーが含まれている場合)。Extracting a ZipArchiveEntry would have resulted in a destination file that is outside destinationArchiveFileName (for example, if the entry name contains parent directory accessors).

または-or-

ZipArchiveEntry には、同じアーカイブから既に抽出されたエントリと同じ名前が付けられています。A ZipArchiveEntry has the same name as an already extracted entry from the same archive.

呼び出し元に、必要なアクセス許可がありません。The caller does not have the required permission.

destinationArchiveFileName の形式が正しくありません。destinationArchiveFileName is in an invalid format.

ZipArchiveEntry が見つからないか、破損しています。A ZipArchiveEntry was not found or was corrupt.

- または --or-

ZipArchiveEntry は、サポートされていない圧縮方法を使用して圧縮されています。A ZipArchiveEntry has been compressed using a compression method that is not supported.

注釈

指定されたディレクトリは既に存在している可能性があります。The specified directory may already exist. このメソッドは、必要に応じて、指定したディレクトリとすべてのサブディレクトリを作成します。This method will create the specified directory and all subdirectories if necessary.

アーカイブの抽出中にエラーが発生した場合、アーカイブは部分的に抽出されたままになります。If there is an error while extracting the archive, the archive will remain partially extracted.

抽出されたファイルの相対パスが、アーカイブのルートに対するエントリdestinationDirectoryNameと同じになるように、各エントリが抽出されます。Each entry will be extracted such that the extracted file has the same relative path to destinationDirectoryName as the entry has to the root of the archive.

アーカイブ対象のファイルの最終更新時刻が無効である場合、Zip タイムスタンプ形式 (1980 年1月1日午前0時) で表現できる最初の日付と時刻が使用されます。If a file to be archived has an invalid last modified time, the first date and time representable in the Zip timestamp format (midnight on January 1, 1980) will be used.

適用対象