ZipFile.CreateFromDirectory メソッド

定義

指定したディレクトリのファイルおよびディレクトリを含む zip アーカイブを作成します。

オーバーロード

CreateFromDirectory(String, Stream)

指定したディレクトリのファイルとディレクトリを含む zip アーカイブを指定したストリームに作成します。

CreateFromDirectory(String, String)

指定したディレクトリのファイルおよびディレクトリを含む zip アーカイブを作成します。

CreateFromDirectory(String, Stream, CompressionLevel, Boolean)

指定したディレクトリのファイルとディレクトリを含み、指定した圧縮レベルを使用し、必要に応じてベース ディレクトリを含む zip アーカイブを指定したストリームに作成します。

CreateFromDirectory(String, String, CompressionLevel, Boolean)

指定したディレクトリのファイルおよびディレクトリを含む zip アーカイブを作成し、指定した圧縮レベルを使用し、オプションでベース ディレクトリを含みます。

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

指定したディレクトリのファイルとディレクトリを含む zip アーカイブを指定されたストリームに作成し、指定した圧縮レベルと文字エンコードをエントリ名に使用し、必要に応じてベース ディレクトリを含めます。

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

指定したディレクトリのファイルおよびディレクトリを含む zip アーカイブを作成し、指定した圧縮レベルとエントリ名の文字エンコーディングを使用し、オプションでベース ディレクトリを含みます。

CreateFromDirectory(String, Stream)

ソース:
ZipFile.Create.cs
ソース:
ZipFile.Create.cs

指定したディレクトリのファイルとディレクトリを含む zip アーカイブを指定したストリームに作成します。

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

パラメーター

sourceDirectoryName
String

アーカイブするディレクトリのパス。相対パスまたは絶対パスとして指定します。 相対パスは、現在の作業ディレクトリに対して相対的に解釈されます。

destination
Stream

zip アーカイブを格納するストリーム。

例外

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

- または -

ストリームは destination 書き込みをサポートしていません。

sourceDirectoryName または destinationnull です。

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

sourceDirectoryName が無効または存在しません (割り当てられていないドライブであるなど)。

指定したディレクトリのファイルが開きませんでした。

- または -

アーカイブするファイルを開いているときに I/O エラーが発生しました。

sourceDirectoryName に無効な書式指定が格納されています。

注釈

ファイル システムのディレクトリ構造はアーカイブに保持されます。 ディレクトリが空の場合は、空のアーカイブが作成されます。 このメソッド オーバーロードにはアーカイブ内のベース ディレクトリが含まれていないので、圧縮レベルを指定することはできません。 ベース ディレクトリを含める場合、または圧縮レベルを指定する場合は、 メソッドのオーバーロードを CreateFromDirectory(String, Stream, CompressionLevel, Boolean) 呼び出します。 ディレクトリ内のファイルをアーカイブに追加できない場合、アーカイブは不完全で無効なままであり、メソッドは例外を IOException スローします。

適用対象

CreateFromDirectory(String, String)

ソース:
ZipFile.Create.cs
ソース:
ZipFile.Create.cs
ソース:
ZipFile.Create.cs

指定したディレクトリのファイルおよびディレクトリを含む zip アーカイブを作成します。

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

アーカイブするディレクトリのパス。相対パスまたは絶対パスとして指定します。 相対パスは、現在の作業ディレクトリに対して相対的に解釈されます。

destinationArchiveFileName
String

作成するアーカイブのパス。相対パスまたは絶対パスとして指定します。 相対パスは、現在の作業ディレクトリに対して相対的に解釈されます。

例外

sourceDirectoryName または destinationArchiveFileNameEmpty であるか、空白文字のみが含まれているか、無効な文字が少なくとも 1 つ含まれています。

sourceDirectoryName または destinationArchiveFileNamenull です。

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

sourceDirectoryName が無効または存在しません (割り当てられていないドライブであるなど)。

destinationArchiveFileName が既に存在します。

- または -

指定したディレクトリのファイルが開きませんでした。

- または -

アーカイブするファイルを開いているときに I/O エラーが発生しました。

destinationArchiveFileName がディレクトリを指定しています。

- または -

呼び出し元に sourceDirectoryName で指定されたディレクトリまたは destinationArchiveFileName で指定されたファイルにアクセスするために必要なアクセス許可がありません。

sourceDirectoryName または destinationArchiveFileName に無効な書式が含まれています。

- または -

zip アーカイブは書き込みをサポートしません。

この例では、 クラスを使用して zip アーカイブを作成および抽出する方法を ZipFile 示します。 フォルダーの内容を zip アーカイブに圧縮し、その内容を新しいフォルダーに抽出します。 ZipFile クラスを使用するには、プロジェクトの System.IO.Compression.FileSystem アセンブリを参照する必要があります。

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);
    }
}
open System.IO.Compression

let startPath = @".\start"
let zipPath = @".\result.zip"
let 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

注釈

ファイル システムのディレクトリ構造はアーカイブに保持されます。 ディレクトリが空の場合は、空のアーカイブが作成されます。 このメソッド オーバーロードにはアーカイブ内のベース ディレクトリが含まれていないので、圧縮レベルを指定することはできません。 ベース ディレクトリを含める場合、または圧縮レベルを指定する場合は、 メソッドのオーバーロードを CreateFromDirectory(String, String, CompressionLevel, Boolean) 呼び出します。

アーカイブが既に存在する場合は、 IOException 例外がスローされます。 指定した名前のエントリがアーカイブに既に存在する場合は、同じ名前の 2 番目のエントリが作成されます。

ディレクトリ内のファイルをアーカイブに追加できない場合、アーカイブは不完全で無効なままであり、メソッドは例外を IOException スローします。

適用対象

CreateFromDirectory(String, Stream, CompressionLevel, Boolean)

ソース:
ZipFile.Create.cs
ソース:
ZipFile.Create.cs

指定したディレクトリのファイルとディレクトリを含み、指定した圧縮レベルを使用し、必要に応じてベース ディレクトリを含む zip アーカイブを指定したストリームに作成します。

public:
 static void CreateFromDirectory(System::String ^ sourceDirectoryName, System::IO::Stream ^ destination, System::IO::Compression::CompressionLevel compressionLevel, bool includeBaseDirectory);
public static void CreateFromDirectory (string sourceDirectoryName, System.IO.Stream destination, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory);
static member CreateFromDirectory : string * System.IO.Stream * System.IO.Compression.CompressionLevel * bool -> unit
Public Shared Sub CreateFromDirectory (sourceDirectoryName As String, destination As Stream, compressionLevel As CompressionLevel, includeBaseDirectory As Boolean)

パラメーター

sourceDirectoryName
String

アーカイブするディレクトリのパス。相対パスまたは絶対パスとして指定します。 相対パスは、現在の作業ディレクトリに対して相対的に解釈されます。

destination
Stream

zip アーカイブを格納するストリーム。

compressionLevel
CompressionLevel

エントリの作成時に速度または圧縮の有効性を強調するかどうかを示す列挙値の 1 つ。

includeBaseDirectory
Boolean

アーカイブのルートにある sourceDirectoryName からのディレクトリ名を含める場合は true。ディレクトリの内容のみを含める場合は false

例外

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

- または -

ストリームは destination 書き込みをサポートしていません。

sourceDirectoryName または destinationnull です。

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

sourceDirectoryName が無効または存在しません (割り当てられていないドライブであるなど)。

指定したディレクトリのファイルが開きませんでした。

- または -

アーカイブするファイルを開いているときに I/O エラーが発生しました。

sourceDirectoryName に無効な書式指定が格納されています。

compressionLevel は有効な CompressionLevel 値ではありません。

注釈

ファイル システムのディレクトリ構造はアーカイブに保持されます。 ディレクトリが空の場合は、空のアーカイブが作成されます。 圧縮レベルと、アーカイブにベース ディレクトリを含めるかどうかを指定するには、このメソッド オーバーロードを使用します。 ディレクトリ内のファイルをアーカイブに追加できない場合、アーカイブは不完全で無効なままであり、メソッドは例外を IOException スローします。

適用対象

CreateFromDirectory(String, String, CompressionLevel, Boolean)

ソース:
ZipFile.Create.cs
ソース:
ZipFile.Create.cs
ソース:
ZipFile.Create.cs

指定したディレクトリのファイルおよびディレクトリを含む zip アーカイブを作成し、指定した圧縮レベルを使用し、オプションでベース ディレクトリを含みます。

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
Public Shared Sub CreateFromDirectory (sourceDirectoryName As String, destinationArchiveFileName As String, compressionLevel As CompressionLevel, includeBaseDirectory As Boolean)

パラメーター

sourceDirectoryName
String

アーカイブするディレクトリのパス。相対パスまたは絶対パスとして指定します。 相対パスは、現在の作業ディレクトリに対して相対的に解釈されます。

destinationArchiveFileName
String

作成するアーカイブのパス。相対パスまたは絶対パスとして指定します。 相対パスは、現在の作業ディレクトリに対して相対的に解釈されます。

compressionLevel
CompressionLevel

エントリの作成時に速度または圧縮の有効性を強調するかどうかを示す列挙値の 1 つ。

includeBaseDirectory
Boolean

アーカイブのルートにある sourceDirectoryName からのディレクトリ名を含める場合は true。ディレクトリの内容のみを含める場合は false

例外

sourceDirectoryName または destinationArchiveFileNameEmpty であるか、空白文字のみが含まれているか、無効な文字が少なくとも 1 つ含まれています。

sourceDirectoryName または destinationArchiveFileNamenull です。

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

sourceDirectoryName が無効または存在しません (割り当てられていないドライブであるなど)。

destinationArchiveFileName が既に存在します。

- または -

指定したディレクトリのファイルが開きませんでした。

- または -

アーカイブするファイルを開いているときに I/O エラーが発生しました。

destinationArchiveFileName がディレクトリを指定しています。

- または -

呼び出し元に sourceDirectoryName で指定されたディレクトリまたは destinationArchiveFileName で指定されたファイルにアクセスするために必要なアクセス許可がありません。

sourceDirectoryName または destinationArchiveFileName に無効な書式が含まれています。

- または -

zip アーカイブは書き込みをサポートしません。

この例では、 クラスを使用して zip アーカイブを作成および抽出する方法を ZipFile 示します。 フォルダーの内容を zip アーカイブに圧縮し、その内容を新しいフォルダーに抽出します。 アーカイブを圧縮する場合は、基本ディレクトリが含まれ、圧縮レベルが設定され、操作の速度が効率よりも強調されます。 ZipFile クラスを使用するには、プロジェクトの System.IO.Compression.FileSystem アセンブリを参照する必要があります。

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);
        }
    }
}
open System.IO.Compression

let startPath = @"c:\example\start"
let zipPath = @"c:\example\result.zip"
let 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

注釈

ファイル システムのディレクトリ構造はアーカイブに保持されます。 ディレクトリが空の場合は、空のアーカイブが作成されます。 圧縮レベルと、アーカイブにベース ディレクトリを含めるかどうかを指定するには、このメソッド オーバーロードを使用します。

アーカイブが既に存在する場合は、 IOException 例外がスローされます。 指定した名前のエントリがアーカイブに既に存在する場合は、同じ名前で 2 番目のエントリが作成されます。

ディレクトリ内のファイルをアーカイブに追加できない場合、アーカイブは不完全で無効なままになり、メソッドは例外を IOException スローします。

適用対象

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

ソース:
ZipFile.Create.cs
ソース:
ZipFile.Create.cs

指定したディレクトリのファイルとディレクトリを含む zip アーカイブを指定されたストリームに作成し、指定した圧縮レベルと文字エンコードをエントリ名に使用し、必要に応じてベース ディレクトリを含めます。

public:
 static void CreateFromDirectory(System::String ^ sourceDirectoryName, System::IO::Stream ^ destination, System::IO::Compression::CompressionLevel compressionLevel, bool includeBaseDirectory, System::Text::Encoding ^ entryNameEncoding);
public static void CreateFromDirectory (string sourceDirectoryName, System.IO.Stream destination, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory, System.Text.Encoding? entryNameEncoding);
static member CreateFromDirectory : string * System.IO.Stream * System.IO.Compression.CompressionLevel * bool * System.Text.Encoding -> unit
Public Shared Sub CreateFromDirectory (sourceDirectoryName As String, destination As Stream, compressionLevel As CompressionLevel, includeBaseDirectory As Boolean, entryNameEncoding As Encoding)

パラメーター

sourceDirectoryName
String

アーカイブするディレクトリのパス。相対パスまたは絶対パスとして指定します。 相対パスは、現在の作業ディレクトリに対して相対的に解釈されます。

destination
Stream

zip アーカイブを格納するストリーム。

compressionLevel
CompressionLevel

エントリの作成時に速度または圧縮の有効性を強調するかどうかを示す列挙値の 1 つ。

includeBaseDirectory
Boolean

アーカイブのルートにある sourceDirectoryName からのディレクトリ名を含める場合は true。ディレクトリの内容のみを含める場合は false

entryNameEncoding
Encoding

このアーカイブのエントリ名の読み取りまたは書き込み時に使用するエンコード。 エントリ名の UTF-8 エンコードをサポートしない zip アーカイブ ツールとライブラリとの相互運用性のためにエンコードが必要な場合にのみ、このパラメーターの値を指定してください。

例外

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

- または -

ストリームは destination 書き込みをサポートしていません。

sourceDirectoryName または destinationnull です。

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

sourceDirectoryName が無効または存在しません (割り当てられていないドライブであるなど)。

指定したディレクトリのファイルが開きませんでした。

- または -

アーカイブするファイルを開いているときに I/O エラーが発生しました。

sourceDirectoryName に無効な書式指定が格納されています。

compressionLevel は有効な CompressionLevel 値ではありません。

注釈

ファイル システムのディレクトリ構造はアーカイブに保持されます。 ディレクトリが空の場合は、空のアーカイブが作成されます。 圧縮レベルと文字エンコード、およびベース ディレクトリをアーカイブに含めるかどうかを指定するには、このメソッド オーバーロードを使用します。 ディレクトリ内のファイルをアーカイブに追加できない場合、アーカイブは不完全で無効なままになり、メソッドは例外を IOException スローします。

適用対象

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

ソース:
ZipFile.Create.cs
ソース:
ZipFile.Create.cs
ソース:
ZipFile.Create.cs

指定したディレクトリのファイルおよびディレクトリを含む zip アーカイブを作成し、指定した圧縮レベルとエントリ名の文字エンコーディングを使用し、オプションでベース ディレクトリを含みます。

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);
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
Public Shared Sub CreateFromDirectory (sourceDirectoryName As String, destinationArchiveFileName As String, compressionLevel As CompressionLevel, includeBaseDirectory As Boolean, entryNameEncoding As Encoding)

パラメーター

sourceDirectoryName
String

アーカイブするディレクトリのパス。相対パスまたは絶対パスとして指定します。 相対パスは、現在の作業ディレクトリに対して相対的に解釈されます。

destinationArchiveFileName
String

作成するアーカイブのパス。相対パスまたは絶対パスとして指定します。 相対パスは、現在の作業ディレクトリに対して相対的に解釈されます。

compressionLevel
CompressionLevel

エントリの作成時に速度または圧縮の有効性を強調するかどうかを示す列挙値の 1 つ。

includeBaseDirectory
Boolean

アーカイブのルートにある sourceDirectoryName からのディレクトリ名を含める場合は true。ディレクトリの内容のみを含める場合は false

entryNameEncoding
Encoding

このアーカイブのエントリ名の読み取りまたは書き込み時に使用するエンコード。 エントリ名の UTF-8 エンコードをサポートしない zip アーカイブ ツールとライブラリとの相互運用性のためにエンコードが必要な場合にのみ、このパラメーターの値を指定してください。

例外

sourceDirectoryName または destinationArchiveFileNameEmpty であるか、空白文字のみが含まれているか、無効な文字が少なくとも 1 つ含まれています。

- または -

entryNameEncoding は UTF-8 以外の Unicode エンコーディングに設定されています。

sourceDirectoryName または destinationArchiveFileNamenull です。

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

sourceDirectoryName が無効または存在しません (割り当てられていないドライブであるなど)。

destinationArchiveFileName が既に存在します。

- または -

指定したディレクトリのファイルが開きませんでした。

- または -

アーカイブするファイルを開いているときに I/O エラーが発生しました。

destinationArchiveFileName がディレクトリを指定しています。

- または -

呼び出し元に sourceDirectoryName で指定されたディレクトリまたは destinationArchiveFileName で指定されたファイルにアクセスするために必要なアクセス許可がありません。

sourceDirectoryName または destinationArchiveFileName に無効な書式が含まれています。

- または -

zip アーカイブは書き込みをサポートしません。

注釈

ファイル システムのディレクトリ構造はアーカイブに保持されます。 ディレクトリが空の場合は、空のアーカイブが作成されます。 圧縮レベルと文字エンコード、およびベース ディレクトリをアーカイブに含めるかどうかを指定するには、このメソッド オーバーロードを使用します。

アーカイブが既に存在する場合は、 IOException 例外がスローされます。 指定した名前のエントリがアーカイブに既に存在する場合は、同じ名前で 2 番目のエントリが作成されます。

ディレクトリ内のファイルをアーカイブに追加できない場合、アーカイブは不完全で無効なままになり、メソッドは例外を IOException スローします。

が 以外nullの値に設定されている場合entryNameEncoding、エントリ名は指定したエンコードを使用してエンコードされます。 指定したエンコードが UTF-8 の場合は、各エントリに言語エンコード フラグ (ローカル ファイル ヘッダーの汎用ビット フラグ内) が設定されます。

が にnull設定されている場合entryNameEncoding、エントリ名は次の規則に従ってエンコードされます。

  • ASCII 範囲外の文字を含むエントリ名の場合は、言語エンコード フラグが設定され、UTF-8 を使用してエントリ名がエンコードされます。

  • ASCII 文字のみを含むエントリ名の場合、言語エンコード フラグが設定され、現在のシステムの既定のコード ページを使用してエントリ名がエンコードされます。

適用対象