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(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

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

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

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(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

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

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