ZipFile.CreateFromDirectory ZipFile.CreateFromDirectory ZipFile.CreateFromDirectory ZipFile.CreateFromDirectory Method

定義

指定したディレクトリのファイルおよびディレクトリを含む zip アーカイブを作成します。Creates a zip archive that contains the files and directories from the specified directory.

オーバーロード

CreateFromDirectory(String, String) CreateFromDirectory(String, String) CreateFromDirectory(String, String) CreateFromDirectory(String, String)

指定したディレクトリのファイルおよびディレクトリを含む zip アーカイブを作成します。Creates a zip archive that contains the files and directories from the specified directory.

CreateFromDirectory(String, String, CompressionLevel, Boolean) CreateFromDirectory(String, String, CompressionLevel, Boolean) CreateFromDirectory(String, String, CompressionLevel, Boolean)

指定したディレクトリのファイルおよびディレクトリを含む zip アーカイブを作成し、指定した圧縮レベルを使用し、オプションでベース ディレクトリを含みます。Creates a zip archive that contains the files and directories from the specified directory, uses the specified compression level, and optionally includes the base directory.

CreateFromDirectory(String, String, CompressionLevel, Boolean, Encoding) CreateFromDirectory(String, String, CompressionLevel, Boolean, Encoding) CreateFromDirectory(String, String, CompressionLevel, Boolean, Encoding)

指定したディレクトリのファイルおよびディレクトリを含む zip アーカイブを作成し、指定した圧縮レベルとエントリ名の文字エンコーディングを使用し、オプションでベース ディレクトリを含みます。Creates a zip archive that contains the files and directories from the specified directory, uses the specified compression level and character encoding for entry names, and optionally includes the base directory.

CreateFromDirectory(String, String) CreateFromDirectory(String, String) CreateFromDirectory(String, String) CreateFromDirectory(String, String)

指定したディレクトリのファイルおよびディレクトリを含む zip アーカイブを作成します。Creates a zip archive that contains the files and directories from the specified directory.

public:
 static void CreateFromDirectory(System::String ^ sourceDirectoryName, System::String ^ destinationArchiveFileName);
public static void CreateFromDirectory (string sourceDirectoryName, string destinationArchiveFileName);
static member CreateFromDirectory : string * string -> unit
Public Shared Sub CreateFromDirectory (sourceDirectoryName As String, destinationArchiveFileName As String)

パラメーター

sourceDirectoryName
String String String String

アーカイブするディレクトリのパス。相対パスまたは絶対パスとして指定します。The path to the directory to be archived, specified as a relative or absolute path. 相対パスは、現在の作業ディレクトリに対して相対的に解釈されます。A relative path is interpreted as relative to the current working directory.

destinationArchiveFileName
String String String String

作成するアーカイブのパス。相対パスまたは絶対パスとして指定します。The path of the archive to be created, specified as a relative or absolute path. 相対パスは、現在の作業ディレクトリに対して相対的に解釈されます。A relative path is interpreted as relative to the current working directory.

例外

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

sourceDirectoryName または destinationArchiveFileNamenull です。sourceDirectoryName or destinationArchiveFileName is null.

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

sourceDirectoryName が無効または存在しません (割り当てられていないドライブであるなど)。sourceDirectoryName is invalid or does not exist (for example, it is on an unmapped drive).

destinationArchiveFileName が既に存在します。destinationArchiveFileName already exists.

または-or- 指定したディレクトリのファイルが開きませんでした。A file in the specified directory could not be opened.

destinationArchiveFileName はディレクトリを指定します。destinationArchiveFileName specifies a directory.

または-or- 呼び出し元に sourceDirectoryName で指定されたディレクトリまたは destinationArchiveFileName で指定されたファイルにアクセスするために必要なアクセス許可がありません。The caller does not have the required permission to access the directory specified in sourceDirectoryName or the file specified in destinationArchiveFileName.

sourceDirectoryName または destinationArchiveFileName に無効な書式が含まれています。sourceDirectoryName or destinationArchiveFileName contains an invalid format.

または-or- zip アーカイブは書き込みをサポートしません。The zip archive does not support writing.

この例を作成しを使用して zip アーカイブを抽出する方法を示しています、ZipFileクラス。This example shows how to create and extract a zip archive by using the ZipFile class. Zip アーカイブにフォルダーの内容を圧縮し、新しいフォルダーにそのコンテンツを抽出します。It compresses the contents of a folder into a zip archive, and then extracts that content to a new folder. ZipFile クラスを使用するには、プロジェクトの System.IO.Compression.FileSystem アセンブリを参照する必要があります。To use the ZipFile class, you must reference the System.IO.Compression.FileSystem assembly in your project.

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);
    }
}
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

注釈

アーカイブ内のファイル システムからディレクトリ構造が保持されます。The directory structure from the file system is preserved in the archive. ディレクトリが空の場合は、空のアーカイブが作成されます。If the directory is empty, an empty archive is created. このメソッドのオーバー ロードは、アーカイブでベース ディレクトリを含まないし、圧縮レベルを指定することはできません。This method overload does not include the base directory in the archive and does not allow you to specify a compression level. ベース ディレクトリを含めるか、圧縮レベル、呼び出しを指定する場合、CreateFromDirectory(String, String, CompressionLevel, Boolean)メソッドのオーバー ロードします。If you want to include the base directory or specify a compression level, call the CreateFromDirectory(String, String, CompressionLevel, Boolean) method overload.

アーカイブが既に存在する場合、IOException例外がスローされます。If the archive already exists, an IOException exception is thrown. アーカイブに指定した名前のエントリが既に存在する場合は、同じ名前の 2 番目のエントリが作成されます。If an entry with the specified name already exists in the archive, a second entry is created with an identical name.

ディレクトリ内のファイルは、アーカイブに追加することはできません、不完全で、無効なアーカイブは残さされ、メソッドがスローされます、IOException例外。If a file in the directory cannot be added to the archive, the archive is left incomplete and invalid, and the method throws an IOException exception.

CreateFromDirectory(String, String, CompressionLevel, Boolean) CreateFromDirectory(String, String, CompressionLevel, Boolean) CreateFromDirectory(String, String, CompressionLevel, Boolean)

指定したディレクトリのファイルおよびディレクトリを含む zip アーカイブを作成し、指定した圧縮レベルを使用し、オプションでベース ディレクトリを含みます。Creates a zip archive that contains the files and directories from the specified directory, uses the specified compression level, and optionally includes the base directory.

public:
 static void CreateFromDirectory(System::String ^ sourceDirectoryName, System::String ^ destinationArchiveFileName, System::IO::Compression::CompressionLevel compressionLevel, bool includeBaseDirectory);
public static void CreateFromDirectory (string sourceDirectoryName, string destinationArchiveFileName, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory);
static member CreateFromDirectory : string * string * System.IO.Compression.CompressionLevel * bool -> unit

パラメーター

sourceDirectoryName
String String String String

アーカイブするディレクトリのパス。相対パスまたは絶対パスとして指定します。The path to the directory to be archived, specified as a relative or absolute path. 相対パスは、現在の作業ディレクトリに対して相対的に解釈されます。A relative path is interpreted as relative to the current working directory.

destinationArchiveFileName
String String String String

作成するアーカイブのパス。相対パスまたは絶対パスとして指定します。The path of the archive to be created, specified as a relative or absolute path. 相対パスは、現在の作業ディレクトリに対して相対的に解釈されます。A relative path is interpreted as relative to the current working directory.

compressionLevel
CompressionLevel CompressionLevel CompressionLevel CompressionLevel

エントリの作成時に速度または圧縮の有効性を強調するかどうかを示す列挙値の 1 つ。One of the enumeration values that indicates whether to emphasize speed or compression effectiveness when creating the entry.

includeBaseDirectory
Boolean Boolean Boolean Boolean

アーカイブのルートにある sourceDirectoryName からのディレクトリ名を含める場合は true。ディレクトリの内容のみを含める場合は falsetrue to include the directory name from sourceDirectoryName at the root of the archive; false to include only the contents of the directory.

例外

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

sourceDirectoryName または destinationArchiveFileNamenull です。sourceDirectoryName or destinationArchiveFileName is null.

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

sourceDirectoryName が無効または存在しません (割り当てられていないドライブであるなど)。sourceDirectoryName is invalid or does not exist (for example, it is on an unmapped drive).

destinationArchiveFileName が既に存在します。destinationArchiveFileName already exists.

または-or- 指定したディレクトリのファイルが開きませんでした。A file in the specified directory could not be opened.

destinationArchiveFileName はディレクトリを指定します。destinationArchiveFileName specifies a directory.

または-or- 呼び出し元に sourceDirectoryName で指定されたディレクトリまたは destinationArchiveFileName で指定されたファイルにアクセスするために必要なアクセス許可がありません。The caller does not have the required permission to access the directory specified in sourceDirectoryName or the file specified in destinationArchiveFileName.

sourceDirectoryName または destinationArchiveFileName に無効な書式が含まれています。sourceDirectoryName or destinationArchiveFileName contains an invalid format.

または-or- zip アーカイブは書き込みをサポートしません。The zip archive does not support writing.

この例を作成しを使用して zip アーカイブを抽出する方法を示しています、ZipFileクラス。This example shows how to create and extract a zip archive by using the ZipFile class. Zip アーカイブにフォルダーの内容を圧縮し、新しいフォルダーにそのコンテンツを抽出します。It compresses the contents of a folder into a zip archive, and then extracts that content to a new folder. ベースのディレクトリが含まれる、アーカイブを圧縮するときと、効率性より操作の速度を強調するために、圧縮レベルを設定します。When compressing the archive, the base directory is included and the compression level is set to emphasize the speed of the operation over efficiency. ZipFile クラスを使用するには、プロジェクトの System.IO.Compression.FileSystem アセンブリを参照する必要があります。To use the ZipFile class, you must reference the System.IO.Compression.FileSystem assembly in your project.

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

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

            ZipFile.CreateFromDirectory(startPath, zipPath, CompressionLevel.Fastest, true);

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

Module Module1

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

        ZipFile.CreateFromDirectory(startPath, zipPath, CompressionLevel.Fastest, True)

        ZipFile.ExtractToDirectory(zipPath, extractPath)
    End Sub

End Module

注釈

アーカイブ内のファイル システムからディレクトリ構造が保持されます。The directory structure from the file system is preserved in the archive. ディレクトリが空の場合は、空のアーカイブが作成されます。If the directory is empty, an empty archive is created. このメソッドのオーバー ロードを使用すると、圧縮レベルとアーカイブのベース ディレクトリを含めるかどうかを指定できます。Use this method overload to specify the compression level and whether to include the base directory in the archive.

アーカイブが既に存在する場合、IOException例外がスローされます。If the archive already exists, an IOException exception is thrown. アーカイブに指定した名前のエントリが既に存在する場合は、同じ名前の 2 番目のエントリが作成されます。If an entry with the specified name already exists in the archive, a second entry is created with an identical name.

ディレクトリ内のファイルは、アーカイブに追加することはできません、不完全で、無効なアーカイブは残さされ、メソッドがスローされます、IOException例外。If a file in the directory cannot be added to the archive, the archive is left incomplete and invalid, and the method throws an IOException exception.

CreateFromDirectory(String, String, CompressionLevel, Boolean, Encoding) CreateFromDirectory(String, String, CompressionLevel, Boolean, Encoding) CreateFromDirectory(String, String, CompressionLevel, Boolean, Encoding)

指定したディレクトリのファイルおよびディレクトリを含む zip アーカイブを作成し、指定した圧縮レベルとエントリ名の文字エンコーディングを使用し、オプションでベース ディレクトリを含みます。Creates a zip archive that contains the files and directories from the specified directory, uses the specified compression level and character encoding for entry names, and optionally includes the base directory.

public:
 static void CreateFromDirectory(System::String ^ sourceDirectoryName, System::String ^ destinationArchiveFileName, System::IO::Compression::CompressionLevel compressionLevel, bool includeBaseDirectory, System::Text::Encoding ^ entryNameEncoding);
public static void CreateFromDirectory (string sourceDirectoryName, string destinationArchiveFileName, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory, System.Text.Encoding entryNameEncoding);
static member CreateFromDirectory : string * string * System.IO.Compression.CompressionLevel * bool * System.Text.Encoding -> unit

パラメーター

sourceDirectoryName
String String String String

アーカイブするディレクトリのパス。相対パスまたは絶対パスとして指定します。The path to the directory to be archived, specified as a relative or absolute path. 相対パスは、現在の作業ディレクトリに対して相対的に解釈されます。A relative path is interpreted as relative to the current working directory.

destinationArchiveFileName
String String String String

作成するアーカイブのパス。相対パスまたは絶対パスとして指定します。The path of the archive to be created, specified as a relative or absolute path. 相対パスは、現在の作業ディレクトリに対して相対的に解釈されます。A relative path is interpreted as relative to the current working directory.

compressionLevel
CompressionLevel CompressionLevel CompressionLevel CompressionLevel

エントリの作成時に速度または圧縮の有効性を強調するかどうかを示す列挙値の 1 つ。One of the enumeration values that indicates whether to emphasize speed or compression effectiveness when creating the entry.

includeBaseDirectory
Boolean Boolean Boolean Boolean

アーカイブのルートにある sourceDirectoryName からのディレクトリ名を含める場合は true。ディレクトリの内容のみを含める場合は falsetrue to include the directory name from sourceDirectoryName at the root of the archive; false to include only the contents of the directory.

entryNameEncoding
Encoding Encoding Encoding Encoding

このアーカイブのエントリ名の読み取りまたは書き込み時に使用するエンコード。The encoding to use when reading or writing entry names in this archive. エントリ名の UTF-8 エンコードをサポートしない zip アーカイブ ツールとライブラリとの相互運用性のためにエンコードが必要な場合にのみ、このパラメーターの値を指定してください。Specify a value for this parameter only when an encoding is required for interoperability with zip archive tools and libraries that do not support UTF-8 encoding for entry names.

例外

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

または-or- entryNameEncoding は UTF-8 以外の Unicode エンコーディングに設定されています。entryNameEncoding is set to a Unicode encoding other than UTF-8.

sourceDirectoryName または destinationArchiveFileNamenull です。sourceDirectoryName or destinationArchiveFileName is null.

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

sourceDirectoryName が無効または存在しません (割り当てられていないドライブであるなど)。sourceDirectoryName is invalid or does not exist (for example, it is on an unmapped drive).

destinationArchiveFileName が既に存在します。destinationArchiveFileName already exists.

または-or- 指定したディレクトリのファイルが開きませんでした。A file in the specified directory could not be opened.

destinationArchiveFileName はディレクトリを指定します。destinationArchiveFileName specifies a directory.

または-or- 呼び出し元に sourceDirectoryName で指定されたディレクトリまたは destinationArchiveFileName で指定されたファイルにアクセスするために必要なアクセス許可がありません。The caller does not have the required permission to access the directory specified in sourceDirectoryName or the file specified in destinationArchiveFileName.

sourceDirectoryName または destinationArchiveFileName に無効な書式が含まれています。sourceDirectoryName or destinationArchiveFileName contains an invalid format.

または-or- zip アーカイブは書き込みをサポートしません。The zip archive does not support writing.

注釈

アーカイブ内のファイル システムからディレクトリ構造が保持されます。The directory structure from the file system is preserved in the archive. ディレクトリが空の場合は、空のアーカイブが作成されます。If the directory is empty, an empty archive is created. このメソッドのオーバー ロードを使用すると、圧縮レベルと文字エンコーディング、およびアーカイブでベース ディレクトリを含めるかどうかを指定できます。Use this method overload to specify the compression level and character encoding, and whether to include the base directory in the archive.

アーカイブが既に存在する場合、IOException例外がスローされます。If the archive already exists, an IOException exception is thrown. アーカイブに指定した名前のエントリが既に存在する場合は、同じ名前の 2 番目のエントリが作成されます。If an entry with the specified name already exists in the archive, a second entry is created with an identical name.

ディレクトリ内のファイルは、アーカイブに追加することはできません、不完全で、無効なアーカイブは残さされ、メソッドがスローされます、IOException例外。If a file in the directory cannot be added to the archive, the archive is left incomplete and invalid, and the method throws an IOException exception.

場合entryNameEncoding以外の値に設定されてnullエントリ名が指定したエンコーディングを使用してエンコードされます。If entryNameEncoding is set to a value other than null, the entry names are encoded by using the specified encoding. 各エントリでは、エンコード (ローカル ファイル ヘッダーの汎用のビット フラグ) にフラグを設定、指定したエンコーディングが utf-8 の場合は、If the specified encoding is a UTF-8, the language encoding flag (in the general-purpose bit flag of the local file header) is set for each entry,

場合entryNameEncodingに設定されているnullエントリの名前は、次の規則に従ってエンコードされます。If entryNameEncoding is set to null, the entry names are encoded according to the following rules:

  • ASCII 範囲外の文字が含まれているエントリの名前、言語エンコード フラグが設定されてとエントリ名をエンコードする utf-8 を使用します。For entry names that contain characters outside the ASCII range, the language encoding flag is set, and UTF-8 is used to encode the entry name.

  • ASCII 文字のみが含まれているエントリの名前、言語エンコード フラグが設定されてとエントリ名のエンコードに現在のシステム既定のコード ページを使用します。For entry names that contain only ASCII characters, the language encoding flag is set, and the current system default code page is used to encode the entry names.

適用対象