ZipArchive.CreateEntry Método

Definição

Cria uma entrada vazia no arquivo zip.

Sobrecargas

CreateEntry(String)

Cria uma entrada vazia que tem o caminho especificado e nome de entrada no arquivo zip.

CreateEntry(String, CompressionLevel)

Cria uma entrada vazia que tem o nível de compactação e o nome de entrada especificados no arquivo-morto zip.

CreateEntry(String)

Origem:
ZipArchive.cs
Origem:
ZipArchive.cs
Origem:
ZipArchive.cs

Cria uma entrada vazia que tem o caminho especificado e nome de entrada no arquivo zip.

public System.IO.Compression.ZipArchiveEntry CreateEntry (string entryName);

Parâmetros

entryName
String

Um caminho relativo à raiz do arquivo-morto que especifica o nome da entrada a ser criada.

Retornos

Uma entrada vazia do arquivo-morto zip.

Exceções

entryName é Empty.

entryName é null.

O arquivo zip não dá suporte à gravação.

O arquivo zip foi descartado.

Exemplos

O exemplo a seguir mostra como criar uma entrada e gravar nela usando um fluxo.

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("========================");
                    }
                }
            }
        }
    }
}

Comentários

A entryName cadeia de caracteres deve refletir o caminho relativo da entrada que você deseja criar no arquivo zip. Não há nenhuma restrição na cadeia de caracteres que você fornece. No entanto, se ele não estiver formatado como um caminho relativo, a entrada será criada, mas você poderá obter uma exceção ao extrair o conteúdo do arquivo zip. Se uma entrada com o caminho e o nome especificados já existirem no arquivo morto, uma segunda entrada será criada com o mesmo caminho e nome.

O valor da LastWriteTime propriedade para a nova entrada é definido como a hora atual. A entrada é compactada usando o nível de compactação padrão do algoritmo de compactação subjacente. Se você quiser especificar um nível de compactação diferente, use o CreateEntry método .

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.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, 4.8.1
.NET Standard 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

CreateEntry(String, CompressionLevel)

Origem:
ZipArchive.cs
Origem:
ZipArchive.cs
Origem:
ZipArchive.cs

Cria uma entrada vazia que tem o nível de compactação e o nome de entrada especificados no arquivo-morto zip.

public System.IO.Compression.ZipArchiveEntry CreateEntry (string entryName, System.IO.Compression.CompressionLevel compressionLevel);

Parâmetros

entryName
String

Um caminho relativo à raiz do arquivo-morto que especifica o nome da entrada a ser criada.

compressionLevel
CompressionLevel

Um dos valores de enumeração que indica se é necessário enfatizar a eficiência de compactação ou velocidade ao criar a entrada.

Retornos

Uma entrada vazia do arquivo-morto zip.

Exceções

entryName é Empty.

entryName é null.

O arquivo zip não dá suporte à gravação.

O arquivo zip foi descartado.

Exemplos

O exemplo a seguir mostra como criar uma entrada com o nível de compactação ideal. Ele também grava na nova entrada usando um fluxo.

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("========================");
                    }
                }
            }
        }
    }
}

Comentários

A entryName cadeia de caracteres deve refletir o caminho relativo da entrada que você deseja criar no arquivo zip. Não há nenhuma restrição na cadeia de caracteres que você fornece. No entanto, se ele não estiver formatado como um caminho relativo, a entrada será criada, mas você poderá obter uma exceção ao extrair o conteúdo do arquivo zip. Se uma entrada com o nome especificado já existir no arquivo morto, uma segunda entrada será criada com o mesmo nome.

O valor da LastWriteTime propriedade para a nova entrada é definido como a hora atual. Defina o compressionLevel parâmetro como Optimal se você quiser que o arquivo seja compactado o máximo possível. Defina o compressionLevel parâmetro como Fastest apenas se você estiver preocupado que a operação de compactação não seja concluída rapidamente o suficiente para seu cenário.

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.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, 4.8.1
.NET Standard 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0