ZipArchive.CreateEntry メソッド

定義

空のエントリを zip アーカイブに作成します。

オーバーロード

CreateEntry(String)

指定したパスとエントリ名を持つ空のエントリを zip アーカイブに作成します。

CreateEntry(String, CompressionLevel)

指定したエントリ名と圧縮レベルを持つ空のエントリを zip アーカイブに作成します。

CreateEntry(String)

指定したパスとエントリ名を持つ空のエントリを zip アーカイブに作成します。

public:
 System::IO::Compression::ZipArchiveEntry ^ CreateEntry(System::String ^ entryName);
public System.IO.Compression.ZipArchiveEntry CreateEntry (string entryName);
member this.CreateEntry : string -> System.IO.Compression.ZipArchiveEntry
Public Function CreateEntry (entryName As String) As ZipArchiveEntry

パラメーター

entryName
String

作成されるエントリの名前を指定する、アーカイブのルートを基準とするパス。

戻り値

zip アーカイブ内の空のエントリ。

例外

entryNameEmptyです。

entryNamenullです。

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

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

次の例は、ストリームを使用してエントリを作成し、それに書き込む方法を示しています。

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

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            using (FileStream zipToOpen = new FileStream(@"c:\users\exampleuser\release.zip", FileMode.Open))
            {
                using (ZipArchive archive = new ZipArchive(zipToOpen, ZipArchiveMode.Update))
                {
                    ZipArchiveEntry readmeEntry = archive.CreateEntry("Readme.txt");
                    using (StreamWriter writer = new StreamWriter(readmeEntry.Open()))
                    {
                            writer.WriteLine("Information about this package.");
                            writer.WriteLine("========================");
                    }
                }
            }
        }
    }
}
open System.IO
open System.IO.Compression

do
    use zipToOpen = new FileStream(@"c:\users\exampleuser\release.zip", FileMode.Open)

    use archive = new ZipArchive(zipToOpen, ZipArchiveMode.Update)

    let readmeEntry = archive.CreateEntry "Readme.txt"
    use writer = new StreamWriter(readmeEntry.Open())

    writer.WriteLine "Information about this package."
    writer.WriteLine "========================"
Imports System.IO
Imports System.IO.Compression

Module Module1

    Sub Main()
        Using zipToOpen As FileStream = New FileStream("c:\users\exampleuser\release.zip", FileMode.Open)
            Using archive As ZipArchive = New ZipArchive(zipToOpen, ZipArchiveMode.Update)
                Dim readmeEntry As ZipArchiveEntry = archive.CreateEntry("Readme.txt")
                Using writer As StreamWriter = New StreamWriter(readmeEntry.Open())
                    writer.WriteLine("Information about this package.")
                    writer.WriteLine("========================")
                End Using
            End Using
        End Using
    End Sub

End Module

注釈

文字列には entryName 、zip アーカイブ内に作成するエントリの相対パスが反映されている必要があります。 指定する文字列に制限はありません。 ただし、相対パスとして書式設定されていない場合は、エントリが作成されますが、zip アーカイブの内容を抽出するときに例外が発生する可能性があります。 指定したパスと名前のエントリがアーカイブに既に存在する場合は、同じパスと名前で 2 番目のエントリが作成されます。

新しいエントリの LastWriteTime プロパティの値は、現在の時刻に設定されます。 エントリは、基になる圧縮アルゴリズムの既定の圧縮レベルを使用して圧縮されます。 別の圧縮レベルを指定する場合は、 メソッドを使用します CreateEntry

適用対象

CreateEntry(String, CompressionLevel)

指定したエントリ名と圧縮レベルを持つ空のエントリを zip アーカイブに作成します。

public:
 System::IO::Compression::ZipArchiveEntry ^ CreateEntry(System::String ^ entryName, System::IO::Compression::CompressionLevel compressionLevel);
public System.IO.Compression.ZipArchiveEntry CreateEntry (string entryName, System.IO.Compression.CompressionLevel compressionLevel);
member this.CreateEntry : string * System.IO.Compression.CompressionLevel -> System.IO.Compression.ZipArchiveEntry
Public Function CreateEntry (entryName As String, compressionLevel As CompressionLevel) As ZipArchiveEntry

パラメーター

entryName
String

作成されるエントリの名前を指定する、アーカイブのルートを基準とするパス。

compressionLevel
CompressionLevel

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

戻り値

zip アーカイブ内の空のエントリ。

例外

entryNameEmptyです。

entryNamenullです。

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

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

次の例は、最適な圧縮レベルでエントリを作成する方法を示しています。 また、ストリームを使用して新しいエントリに書き込みます。

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

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            using (FileStream zipToOpen = new FileStream(@"c:\users\exampleuser\release.zip", FileMode.Open))
            {
                using (ZipArchive archive = new ZipArchive(zipToOpen, ZipArchiveMode.Update))
                {
                    ZipArchiveEntry readmeEntry = archive.CreateEntry("Readme.txt", CompressionLevel.Optimal);
                    using (StreamWriter writer = new StreamWriter(readmeEntry.Open()))
                    {
                            writer.WriteLine("Information about this package.");
                            writer.WriteLine("========================");
                    }
                }
            }
        }
    }
}
open System.IO
open System.IO.Compression

do
    use zipToOpen = new FileStream(@"c:\users\exampleuser\release.zip", FileMode.Open)

    use archive = new ZipArchive(zipToOpen, ZipArchiveMode.Update)

    let readmeEntry = archive.CreateEntry("Readme.txt", CompressionLevel.Optimal)
    use writer = new StreamWriter(readmeEntry.Open())

    writer.WriteLine "Information about this package."
    writer.WriteLine "========================"
Imports System.IO
Imports System.IO.Compression

Module Module1

    Sub Main()
        Using zipToOpen As FileStream = New FileStream("c:\users\exampleuser\release.zip", FileMode.Open)
            Using archive As ZipArchive = New ZipArchive(zipToOpen, ZipArchiveMode.Update)
                Dim readmeEntry As ZipArchiveEntry = archive.CreateEntry("Readme.txt", CompressionLevel.Optimal)
                Using writer As StreamWriter = New StreamWriter(readmeEntry.Open())
                    writer.WriteLine("Information about this package.")
                    writer.WriteLine("========================")
                End Using
            End Using
        End Using
    End Sub

End Module

注釈

文字列には entryName 、zip アーカイブ内に作成するエントリの相対パスが反映されている必要があります。 指定する文字列に制限はありません。 ただし、相対パスとして書式設定されていない場合は、エントリが作成されますが、zip アーカイブの内容を抽出するときに例外が発生する可能性があります。 指定した名前のエントリがアーカイブに既に存在する場合は、同じ名前の 2 番目のエントリが作成されます。

新しいエントリの LastWriteTime プロパティの値は、現在の時刻に設定されます。 ファイルを compressionLevel できるだけ圧縮する場合は、 パラメーター Optimal を に設定します。 パラメーターを compressionLevelFastest 設定するのは、圧縮操作がシナリオに対して十分に迅速に完了しないことが懸念される場合のみです。

適用対象