ZipFile.CreateFromDirectory メソッド
定義
指定したディレクトリのファイルおよびディレクトリを含む zip アーカイブを作成します。
オーバーロード
CreateFromDirectory(String, String) |
指定したディレクトリのファイルおよびディレクトリを含む zip アーカイブを作成します。 |
CreateFromDirectory(String, String, CompressionLevel, Boolean) |
指定したディレクトリのファイルおよびディレクトリを含む zip アーカイブを作成し、指定した圧縮レベルを使用し、オプションでベース ディレクトリを含みます。 |
CreateFromDirectory(String, String, CompressionLevel, Boolean, Encoding) |
指定したディレクトリのファイルおよびディレクトリを含む zip アーカイブを作成し、指定した圧縮レベルとエントリ名の文字エンコーディングを使用し、オプションでベース ディレクトリを含みます。 |
CreateFromDirectory(String, String)
指定したディレクトリのファイルおよびディレクトリを含む zip アーカイブを作成します。
public static void CreateFromDirectory (string sourceDirectoryName, string destinationArchiveFileName);
パラメーター
- sourceDirectoryName
- String
アーカイブするディレクトリのパス。相対パスまたは絶対パスとして指定します。 相対パスは、現在の作業ディレクトリに対して相対的に解釈されます。
- destinationArchiveFileName
- String
作成するアーカイブのパス。相対パスまたは絶対パスとして指定します。 相対パスは、現在の作業ディレクトリに対して相対的に解釈されます。
例外
sourceDirectoryName
または destinationArchiveFileName
が Empty であるか、空白文字のみが含まれているか、無効な文字が少なくとも 1 つ含まれています。
sourceDirectoryName
または destinationArchiveFileName
が null
です。
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);
}
}
注釈
ファイルシステムのディレクトリ構造はアーカイブ内に保持されます。 ディレクトリが空の場合は、空のアーカイブが作成されます。 このメソッドのオーバーロードにはアーカイブ内のベースディレクトリは含まれず、圧縮レベルを指定することはできません。 ベースディレクトリを含める場合、または圧縮レベルを指定する場合は、 CreateFromDirectory(String, String, CompressionLevel, Boolean) メソッドオーバーロードを呼び出します。
アーカイブが既に存在する場合は、 IOException 例外がスローされます。 指定した名前のエントリがアーカイブ内に既に存在する場合は、同じ名前で2番目のエントリが作成されます。
ディレクトリ内のファイルをアーカイブに追加できない場合、アーカイブは不完全なままで無効になり、メソッドは例外をスローし IOException ます。
適用対象
.NET 6.0 RC 1 およびその他のバージョン
製品 | バージョン |
---|---|
.NET | 5.0, 6.0 RC 1 |
.NET Core | 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1 |
.NET Framework | 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8 |
.NET Standard | 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |
Xamarin.Android | 7.1 |
Xamarin.iOS | 10.8 |
Xamarin.Mac | 3.0 |
CreateFromDirectory(String, String, CompressionLevel, Boolean)
指定したディレクトリのファイルおよびディレクトリを含む zip アーカイブを作成し、指定した圧縮レベルを使用し、オプションでベース ディレクトリを含みます。
public static void CreateFromDirectory (string sourceDirectoryName, string destinationArchiveFileName, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory);
パラメーター
- sourceDirectoryName
- String
アーカイブするディレクトリのパス。相対パスまたは絶対パスとして指定します。 相対パスは、現在の作業ディレクトリに対して相対的に解釈されます。
- destinationArchiveFileName
- String
作成するアーカイブのパス。相対パスまたは絶対パスとして指定します。 相対パスは、現在の作業ディレクトリに対して相対的に解釈されます。
- compressionLevel
- CompressionLevel
エントリの作成時に速度または圧縮の有効性を強調するかどうかを示す列挙値の 1 つ。
- includeBaseDirectory
- Boolean
アーカイブのルートにある sourceDirectoryName
からのディレクトリ名を含める場合は true
。ディレクトリの内容のみを含める場合は false
。
例外
sourceDirectoryName
または destinationArchiveFileName
が Empty であるか、空白文字のみが含まれているか、無効な文字が少なくとも 1 つ含まれています。
sourceDirectoryName
または destinationArchiveFileName
が null
です。
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);
}
}
}
注釈
ファイルシステムのディレクトリ構造はアーカイブ内に保持されます。 ディレクトリが空の場合は、空のアーカイブが作成されます。 このメソッドオーバーロードを使用して、圧縮レベルと、アーカイブにベースディレクトリを含めるかどうかを指定します。
アーカイブが既に存在する場合は、 IOException 例外がスローされます。 指定した名前のエントリがアーカイブ内に既に存在する場合は、同じ名前で2番目のエントリが作成されます。
ディレクトリ内のファイルをアーカイブに追加できない場合、アーカイブは不完全なままで無効になり、メソッドは例外をスローし IOException ます。
適用対象
.NET 6.0 RC 1 およびその他のバージョン
製品 | バージョン |
---|---|
.NET | 5.0, 6.0 RC 1 |
.NET Core | 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1 |
.NET Framework | 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8 |
.NET Standard | 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |
Xamarin.Android | 7.1 |
Xamarin.iOS | 10.8 |
Xamarin.Mac | 3.0 |
CreateFromDirectory(String, String, CompressionLevel, Boolean, Encoding)
指定したディレクトリのファイルおよびディレクトリを含む zip アーカイブを作成し、指定した圧縮レベルとエントリ名の文字エンコーディングを使用し、オプションでベース ディレクトリを含みます。
public static void CreateFromDirectory (string sourceDirectoryName, string destinationArchiveFileName, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory, System.Text.Encoding? entryNameEncoding);
パラメーター
- sourceDirectoryName
- String
アーカイブするディレクトリのパス。相対パスまたは絶対パスとして指定します。 相対パスは、現在の作業ディレクトリに対して相対的に解釈されます。
- destinationArchiveFileName
- String
作成するアーカイブのパス。相対パスまたは絶対パスとして指定します。 相対パスは、現在の作業ディレクトリに対して相対的に解釈されます。
- compressionLevel
- CompressionLevel
エントリの作成時に速度または圧縮の有効性を強調するかどうかを示す列挙値の 1 つ。
- includeBaseDirectory
- Boolean
アーカイブのルートにある sourceDirectoryName
からのディレクトリ名を含める場合は true
。ディレクトリの内容のみを含める場合は false
。
- entryNameEncoding
- Encoding
このアーカイブのエントリ名の読み取りまたは書き込み時に使用するエンコード。 エントリ名の UTF-8 エンコードをサポートしない zip アーカイブ ツールとライブラリとの相互運用性のためにエンコードが必要な場合にのみ、このパラメーターの値を指定してください。
例外
sourceDirectoryName
または destinationArchiveFileName
が Empty であるか、空白文字のみが含まれているか、無効な文字が少なくとも 1 つ含まれています。
- または -
entryNameEncoding
は UTF-8 以外の Unicode エンコーディングに設定されています。
sourceDirectoryName
または destinationArchiveFileName
が null
です。
sourceDirectoryName
または destinationArchiveFileName
で、指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。
sourceDirectoryName
が無効または存在しません (割り当てられていないドライブであるなど)。
destinationArchiveFileName
が既に存在します。
または - 指定したディレクトリのファイルが開きませんでした。
または -
アーカイブするファイルを開いているときに I/O エラーが発生しました。
destinationArchiveFileName
がディレクトリを指定しています。
- または -
呼び出し元に
sourceDirectoryName
で指定されたディレクトリまたはdestinationArchiveFileName
で指定されたファイルにアクセスするために必要なアクセス許可がありません。
sourceDirectoryName
または destinationArchiveFileName
に無効な書式が含まれています。
- または - zip アーカイブは書き込みをサポートしません。
注釈
ファイルシステムのディレクトリ構造はアーカイブ内に保持されます。 ディレクトリが空の場合は、空のアーカイブが作成されます。 このメソッドオーバーロードを使用して、圧縮レベルと文字エンコーディングを指定し、アーカイブにベースディレクトリを含めるかどうかを指定します。
アーカイブが既に存在する場合は、 IOException 例外がスローされます。 指定した名前のエントリがアーカイブ内に既に存在する場合は、同じ名前で2番目のエントリが作成されます。
ディレクトリ内のファイルをアーカイブに追加できない場合、アーカイブは不完全なままで無効になり、メソッドは例外をスローし IOException ます。
entryNameEncoding
が以外の値に設定されている場合、 null
エントリ名は指定されたエンコーディングを使用してエンコードされます。 指定されたエンコーディングが UTF-8 の場合、言語エンコードフラグ (ローカルファイルヘッダーの汎用ビットフラグ) が各エントリに対して設定されます。
がに設定されている場合、 entryNameEncoding
null
エントリ名は次の規則に従ってエンコードされます。
ASCII の範囲外の文字を含むエントリ名の場合、言語エンコードフラグが設定され、UTF-8 を使用してエントリ名がエンコードされます。
ASCII 文字のみを含むエントリ名の場合、言語エンコードフラグが設定され、現在のシステムの既定のコードページを使用してエントリ名がエンコードされます。
適用対象
.NET 6.0 RC 1 およびその他のバージョン
製品 | バージョン |
---|---|
.NET | 5.0, 6.0 RC 1 |
.NET Core | 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1 |
.NET Framework | 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8 |
.NET Standard | 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |
Xamarin.Android | 7.1 |
Xamarin.iOS | 10.8 |
Xamarin.Mac | 3.0 |