ZipArchive.CreateEntry Metoda

Definice

Vytvoří prázdnou položku v archivu zip.

Přetížení

CreateEntry(String)

Vytvoří prázdnou položku, která má zadanou cestu a název položky v archivu zip.

CreateEntry(String, CompressionLevel)

Vytvoří prázdnou položku, která má zadaný název položky a úroveň komprese v archivu zip.

CreateEntry(String)

Zdroj:
ZipArchive.cs
Zdroj:
ZipArchive.cs
Zdroj:
ZipArchive.cs

Vytvoří prázdnou položku, která má zadanou cestu a název položky v archivu 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

Parametry

entryName
String

Cesta relativní ke kořenovému adresáři archivu, která určuje název položky, která se má vytvořit.

Návraty

Prázdná položka v archivu zip.

Výjimky

entryName je Empty.

entryName je null.

Archiv zip nepodporuje psaní.

Archiv zip byl odstraněn.

Příklady

Následující příklad ukazuje, jak vytvořit položku a zapisovat do ní pomocí datového proudu.

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

Poznámky

Řetězec entryName by měl odrážet relativní cestu k položce, kterou chcete vytvořit v archivu ZIP. Pro řetězec, který zadáte, neexistuje žádné omezení. Pokud však není formátován jako relativní cesta, položka se vytvoří, ale při extrahování obsahu archivu zip může dojít k výjimce. Pokud položka se zadanou cestou a názvem již v archivu existuje, vytvoří se druhá položka se stejnou cestou a názvem.

Hodnota LastWriteTime vlastnosti pro novou položku je nastavena na aktuální čas. Položka je komprimována pomocí výchozí úrovně komprese základního algoritmu komprese. Pokud chcete zadat jinou úroveň komprese, použijte metodu CreateEntry .

Platí pro

CreateEntry(String, CompressionLevel)

Zdroj:
ZipArchive.cs
Zdroj:
ZipArchive.cs
Zdroj:
ZipArchive.cs

Vytvoří prázdnou položku, která má zadaný název položky a úroveň komprese v archivu 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

Parametry

entryName
String

Cesta relativní ke kořenovému adresáři archivu, která určuje název položky, která se má vytvořit.

compressionLevel
CompressionLevel

Jedna z hodnot výčtu, která určuje, zda se má při vytváření položky zdůraznit rychlost nebo účinnost komprese.

Návraty

Prázdná položka v archivu zip.

Výjimky

entryName je Empty.

entryName je null.

Archiv zip nepodporuje psaní.

Archiv zip byl odstraněn.

Příklady

Následující příklad ukazuje, jak vytvořit položku s optimální úrovní komprese. Také zapisuje do nové položky pomocí datového proudu.

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

Poznámky

Řetězec entryName by měl odrážet relativní cestu k položce, kterou chcete vytvořit v archivu ZIP. Pro řetězec, který zadáte, neexistuje žádné omezení. Pokud však není formátován jako relativní cesta, položka se vytvoří, ale při extrahování obsahu archivu zip může dojít k výjimce. Pokud položka se zadaným názvem již v archivu existuje, vytvoří se druhá položka se stejným názvem.

Hodnota LastWriteTime vlastnosti pro novou položku je nastavena na aktuální čas. compressionLevel Pokud chcete, aby se soubor co nejvíce komprimoval, nastavte parametr na Optimal hodnotu . Parametr nastavte compressionLevel na hodnotu Fastest pouze v případě, že máte obavy, že se operace komprese pro váš scénář nedokončuje dostatečně rychle.

Platí pro