ZipFile.CreateFromDirectory メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定したディレクトリのファイルおよびディレクトリを含む 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)
指定したディレクトリのファイルとディレクトリを含む 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 アーカイブを格納するストリーム。
例外
sourceDirectoryName
が Empty か、空白のみが含まれているか、無効な文字が少なくとも 1 つ含まれています。
- または -
ストリームは destination
書き込みをサポートしていません。
sourceDirectoryName
または destination
が null
です。
指定したパス、ファイル名、またはその両方が sourceDirectoryName
システム定義の最大長を超えています。
sourceDirectoryName
が無効または存在しません (割り当てられていないドライブであるなど)。
sourceDirectoryName
に無効な書式指定が格納されています。
注釈
ファイル システムのディレクトリ構造はアーカイブに保持されます。 ディレクトリが空の場合は、空のアーカイブが作成されます。 このメソッド のオーバーロードには、アーカイブ内のベース ディレクトリは含まれていないので、圧縮レベルを指定することはできません。 ベース ディレクトリを含める場合、または圧縮レベルを指定する場合は、 メソッド オーバーロードを CreateFromDirectory(String, Stream, CompressionLevel, Boolean) 呼び出します。 ディレクトリ内のファイルをアーカイブに追加できない場合、アーカイブは不完全で無効なままになり、メソッドは例外を IOException スローします。
適用対象
CreateFromDirectory(String, String)
指定したディレクトリのファイルおよびディレクトリを含む 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
または 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);
}
}
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)
指定したディレクトリのファイルとディレクトリを含み、指定した圧縮レベルを使用し、必要に応じてベース ディレクトリを含む 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
。
例外
sourceDirectoryName
が Empty か、空白のみが含まれているか、無効な文字が少なくとも 1 つ含まれています。
- または -
ストリームは destination
書き込みをサポートしていません。
sourceDirectoryName
または destination
が null
です。
指定したパス、ファイル名、またはその両方が sourceDirectoryName
システム定義の最大長を超えています。
sourceDirectoryName
が無効または存在しません (割り当てられていないドライブであるなど)。
sourceDirectoryName
に無効な書式指定が格納されています。
compressionLevel
は有効な CompressionLevel 値ではありません。
注釈
ファイル システムのディレクトリ構造はアーカイブに保持されます。 ディレクトリが空の場合は、空のアーカイブが作成されます。 圧縮レベルと、アーカイブにベース ディレクトリを含めるかどうかを指定するには、このメソッド オーバーロードを使用します。 ディレクトリ内のファイルをアーカイブに追加できない場合、アーカイブは不完全で無効なままになり、メソッドは例外を IOException スローします。
適用対象
CreateFromDirectory(String, String, CompressionLevel, Boolean)
指定したディレクトリのファイルおよびディレクトリを含む 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
または 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);
}
}
}
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)
指定したディレクトリのファイルとディレクトリを含む 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 アーカイブ ツールとライブラリとの相互運用性のためにエンコードが必要な場合にのみ、このパラメーターの値を指定してください。
例外
sourceDirectoryName
が Empty か、空白のみが含まれているか、無効な文字が少なくとも 1 つ含まれています。
- または -
ストリームは destination
書き込みをサポートしていません。
sourceDirectoryName
または destination
が null
です。
sourceDirectoryName
指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。
sourceDirectoryName
が無効または存在しません (割り当てられていないドライブであるなど)。
sourceDirectoryName
に無効な書式指定が格納されています。
compressionLevel
は有効な CompressionLevel 値ではありません。
注釈
ファイル システムのディレクトリ構造はアーカイブに保持されます。 ディレクトリが空の場合は、空のアーカイブが作成されます。 圧縮レベルと文字エンコード、およびベース ディレクトリをアーカイブに含めるかどうかを指定するには、このメソッド オーバーロードを使用します。 ディレクトリ内のファイルをアーカイブに追加できない場合、アーカイブは不完全で無効なままであり、メソッドは例外を IOException スローします。
適用対象
CreateFromDirectory(String, String, CompressionLevel, Boolean, Encoding)
指定したディレクトリのファイルおよびディレクトリを含む 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
または 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 スローします。
が 以外null
の値に設定されている場合entryNameEncoding
、エントリ名は指定したエンコードを使用してエンコードされます。 指定したエンコードが UTF-8 の場合、各エントリに言語エンコード フラグ (ローカル ファイル ヘッダーの汎用ビット フラグ内) が設定されます。
が にnull
設定されている場合entryNameEncoding
、エントリ名は次の規則に従ってエンコードされます。
ASCII 範囲外の文字を含むエントリ名の場合は、言語エンコード フラグが設定され、UTF-8 を使用してエントリ名がエンコードされます。
ASCII 文字のみを含むエントリ名の場合は、言語エンコード フラグが設定され、現在のシステムの既定のコード ページを使用してエントリ名がエンコードされます。
適用対象
.NET