ZipFileExtensions.CreateEntryFromFile メソッド

定義

圧縮し、zip アーカイブに追加することでファイルをアーカイブします。

オーバーロード

CreateEntryFromFile(ZipArchive, String, String)

圧縮し、zip アーカイブに追加することでファイルをアーカイブします。

CreateEntryFromFile(ZipArchive, String, String, CompressionLevel)

指定した圧縮レベルで圧縮し、zip アーカイブに追加することでファイルをアーカイブします。

CreateEntryFromFile(ZipArchive, String, String)

ソース:
ZipFileExtensions.ZipArchive.Create.cs
ソース:
ZipFileExtensions.ZipArchive.Create.cs
ソース:
ZipFileExtensions.ZipArchive.Create.cs

圧縮し、zip アーカイブに追加することでファイルをアーカイブします。

public static System.IO.Compression.ZipArchiveEntry CreateEntryFromFile (this System.IO.Compression.ZipArchive destination, string sourceFileName, string entryName);

パラメーター

destination
ZipArchive

ファイルに追加するzip アーカイブ。

sourceFileName
String

アーカイブするファイルへのパス。 相対パスと絶対パスのどちらかを指定することができます。 相対パスは、現在の作業ディレクトリに対して相対的に解釈されます。

entryName
String

zip アーカイブ内に作成するエントリの名前。

戻り値

zip アーカイブ内の新しいエントリのラッパー。

例外

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

- または -

entryNameEmptyです。

sourceFileName または entryNamenull です。

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

sourceFileName が有効ではありません (たとえば、マップされていないドライブにあるなど)。

sourceFileName 指定されたファイルを開くことができないか、大きすぎて更新できません (現在の制限は Int32.MaxValue です)。

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

- または -

sourceFileName によって指定されたファイルにアクセスするために必要なアクセス許可が呼び出し元にありません。

sourceFileName で指定されたファイルが見つかりません。

sourceFileName パラメーターの形式が正しくありません。

- または -

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

zip アーカイブが破棄されました。

次の例は、既存のファイルから zip アーカイブに新しいエントリを作成する方法を示しています。

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

注釈

アーカイブ内の新しいエントリには、 で sourceFileName指定されたファイルの内容が含まれています。 指定した名前 (entryName) のエントリが既にアーカイブに存在する場合は、同じ名前で 2 番目のエントリが作成されます。 エントリの プロパティは LastWriteTime 、ファイル システム上のファイルが最後に変更されたときに設定されます。

が存在する場合 ZipArchiveMode.Update 、エントリのサイズ制限は に Int32.MaxValue制限されます。 この制限は、更新モードでは、 を MemoryStream 内部的に使用してアーカイブの更新時に必要なシークを許可し、int のサイズと MemoryStream 最大が等しいためです。

適用対象

CreateEntryFromFile(ZipArchive, String, String, CompressionLevel)

ソース:
ZipFileExtensions.ZipArchive.Create.cs
ソース:
ZipFileExtensions.ZipArchive.Create.cs
ソース:
ZipFileExtensions.ZipArchive.Create.cs

指定した圧縮レベルで圧縮し、zip アーカイブに追加することでファイルをアーカイブします。

public static System.IO.Compression.ZipArchiveEntry CreateEntryFromFile (this System.IO.Compression.ZipArchive destination, string sourceFileName, string entryName, System.IO.Compression.CompressionLevel compressionLevel);

パラメーター

destination
ZipArchive

ファイルに追加するzip アーカイブ。

sourceFileName
String

アーカイブするファイルへのパス。 相対パスと絶対パスのどちらかを指定することができます。 相対パスは、現在の作業ディレクトリに対して相対的に解釈されます。

entryName
String

zip アーカイブ内に作成するエントリの名前。

compressionLevel
CompressionLevel

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

戻り値

zip アーカイブ内の新しいエントリのラッパー。

例外

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

- または -

entryNameEmptyです。

sourceFileName または entryNamenull です。

sourceFileName が有効ではありません (たとえば、マップされていないドライブにあるなど)。

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

sourceFileName 指定されたファイルを開くことができないか、大きすぎて更新できません (現在の制限は Int32.MaxValue です)。

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

- または -

sourceFileName によって指定されたファイルにアクセスするために必要なアクセス許可が呼び出し元にありません。

sourceFileName で指定されたファイルが見つかりません。

sourceFileName パラメーターの形式が正しくありません。

- または -

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

zip アーカイブが破棄されました。

次の例は、既存のファイルから zip アーカイブに新しいエントリを作成し、圧縮レベルを指定する方法を示しています。

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", CompressionLevel.Fastest);
                archive.ExtractToDirectory(extractPath);
            }
        }
    }
}

注釈

アーカイブ内の新しいエントリには、 で sourceFileName指定されたファイルの内容が含まれています。 指定した名前 (entryName) のエントリが既にアーカイブに存在する場合は、同じ名前で 2 番目のエントリが作成されます。 エントリの プロパティは LastWriteTime 、ファイル システム上のファイルが最後に変更されたときに設定されます。

が存在する場合 ZipArchiveMode.Update 、エントリのサイズ制限は に Int32.MaxValue制限されます。 この制限は、更新モードでは、 を MemoryStream 内部的に使用してアーカイブの更新時に必要なシークを許可し、int のサイズと MemoryStream 最大が等しいためです。

適用対象