ZipArchive.CreateEntry Método

Definição

Cria uma entrada vazia no arquivo postal.

Sobrecargas

Name Description
CreateEntry(String)

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

CreateEntry(String, CompressionLevel)

Cria uma entrada vazia com o nome da entrada e o nível de compressão especificados no arquivo zip.

CreateEntry(String)

Cria uma entrada vazia que tem o caminho especificado e o nome da 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, que especifica o nome da entrada a ser criada.

Devoluções

Uma entrada vazia no arquivo postal.

Exceções

entryName é Empty.

entryName é null.

O arquivo postal não suporta escrita.

O arquivo postal foi descartado.

Exemplos

O exemplo seguinte mostra como criar uma entrada e escrever 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

Observações

A entryName cadeia deve refletir o caminho relativo da entrada que pretende criar dentro do arquivo zip. Não há restrição quanto ao fio que fornece. No entanto, se não estiver formatado como um caminho relativo, a entrada é criada, mas pode haver uma exceção ao extrair o conteúdo do arquivo zip. Se uma entrada com o caminho e nome especificados já existir no arquivo, é criada uma segunda entrada com o mesmo caminho e nome.

O valor da LastWriteTime propriedade para a nova entrada é definido para o tempo atual. A entrada é comprimida usando o nível padrão de compressão do algoritmo de compressão subjacente. Se quiseres especificar um nível de compressão diferente, usa o CreateEntry método.

Aplica-se a

CreateEntry(String, CompressionLevel)

Cria uma entrada vazia com o nome da entrada e o nível de compressão especificados no arquivo 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, que especifica o nome da entrada a ser criada.

compressionLevel
CompressionLevel

Um dos valores de enumeração indica se deve enfatizar a velocidade ou a eficácia da compressão ao criar a entrada.

Devoluções

Uma entrada vazia no arquivo postal.

Exceções

entryName é Empty.

entryName é null.

O arquivo postal não suporta escrita.

O arquivo postal foi descartado.

Exemplos

O exemplo seguinte mostra como criar uma entrada com o nível de compressão ótimo. Também escreve para a 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

Observações

A entryName cadeia deve refletir o caminho relativo da entrada que pretende criar dentro do arquivo zip. Não há restrição quanto ao fio que fornece. No entanto, se não estiver formatado como um caminho relativo, a entrada é criada, mas pode haver uma exceção ao extrair o conteúdo do arquivo zip. Se já existir uma entrada com o nome especificado no arquivo, é criada uma segunda entrada com o mesmo nome.

O valor da LastWriteTime propriedade para a nova entrada é definido para o tempo atual. Define o compressionLevel parâmetro para Optimal se quiseres que o ficheiro seja comprimido o máximo possível. Defina o compressionLevel parâmetro apenas Fastest se estiver preocupado que a operação de compressão não seja completa rapidamente para o seu cenário.

Aplica-se a