ZipFileExtensions.CreateEntryFromFile ZipFileExtensions.CreateEntryFromFile ZipFileExtensions.CreateEntryFromFile ZipFileExtensions.CreateEntryFromFile Method

Definição

Arquiva um arquivo compactando-o e adicionando-o ao arquivo zip.Archives a file by compressing it and adding it to the zip archive.

Sobrecargas

CreateEntryFromFile(ZipArchive, String, String) CreateEntryFromFile(ZipArchive, String, String) CreateEntryFromFile(ZipArchive, String, String) CreateEntryFromFile(ZipArchive, String, String)

Arquiva um arquivo compactando-o e adicionando-o ao arquivo zip.Archives a file by compressing it and adding it to the zip archive.

CreateEntryFromFile(ZipArchive, String, String, CompressionLevel) CreateEntryFromFile(ZipArchive, String, String, CompressionLevel) CreateEntryFromFile(ZipArchive, String, String, CompressionLevel)

Arquiva um arquivo, compactando-o usando o nível de compactação especificado e adicionando-o ao arquivo zip.Archives a file by compressing it using the specified compression level and adding it to the zip archive.

CreateEntryFromFile(ZipArchive, String, String) CreateEntryFromFile(ZipArchive, String, String) CreateEntryFromFile(ZipArchive, String, String) CreateEntryFromFile(ZipArchive, String, String)

Arquiva um arquivo compactando-o e adicionando-o ao arquivo zip.Archives a file by compressing it and adding it to the zip archive.

public:
[System::Runtime::CompilerServices::Extension]
 static System::IO::Compression::ZipArchiveEntry ^ CreateEntryFromFile(System::IO::Compression::ZipArchive ^ destination, System::String ^ sourceFileName, System::String ^ entryName);
public static System.IO.Compression.ZipArchiveEntry CreateEntryFromFile (this System.IO.Compression.ZipArchive destination, string sourceFileName, string entryName);
static member CreateEntryFromFile : System.IO.Compression.ZipArchive * string * string -> System.IO.Compression.ZipArchiveEntry
<Extension()>
Public Function CreateEntryFromFile (destination As ZipArchive, sourceFileName As String, entryName As String) As ZipArchiveEntry

Parâmetros

destination
ZipArchive ZipArchive ZipArchive ZipArchive

O arquivo zip ao qual o arquivo será adicionado.The zip archive to add the file to.

sourceFileName
String String String String

O caminho para o arquivo a ser arquivado.The path to the file to be archived. Você pode especificar um caminho absoluto ou relativo.You can specify either a relative or an absolute path. Um caminho relativo é interpretado como relativo ao diretório de trabalho atual.A relative path is interpreted as relative to the current working directory.

entryName
String String String String

O nome da entrada a ser criada no arquivo zip.The name of the entry to create in the zip archive.

Retornos

Um wrapper para a nova entrada no arquivo zip.A wrapper for the new entry in the zip archive.

Exceções

sourceFileName é Empty, contém somente espaços em branco ou, pelo menos, um caractere inválido.sourceFileName is Empty, contains only white space, or contains at least one invalid character.

- ou --or- entryName é Empty.entryName is Empty.

sourceFileName ou entryName é null.sourceFileName or entryName is null.

Em sourceFileName, o caminho especificado, o nome de arquivo, ou ambos excedem o tamanho máximo definido pelo sistema.In sourceFileName, the specified path, file name, or both exceed the system-defined maximum length.

sourceFileName é inválido (por exemplo, está em uma unidade não mapeada).sourceFileName is invalid (for example, it is on an unmapped drive).

O arquivo especificado por sourceFileName não pode ser aberto ou é muito grande para ser atualizado (o limite atual é Int32.MaxValue).The file specified by sourceFileName cannot be opened, or is too large to be updated (current limit is Int32.MaxValue).

sourceFileName especifica um diretório.sourceFileName specifies a directory.

- ou --or- O chamador não tem a permissão necessária para acessar o arquivo especificado por sourceFileName.The caller does not have the required permission to access the file specified by sourceFileName.

O arquivo especificado por sourceFileName não foi encontrado.The file specified by sourceFileName is not found.

O parâmetro sourceFileName está em um formato inválido.The sourceFileName parameter is in an invalid format.

- ou --or- O arquivo zip não dá suporte à gravação.The zip archive does not support writing.

O arquivo zip foi descartado.The zip archive has been disposed.

Exemplos

O exemplo a seguir mostra como criar uma nova entrada em um arquivo zip a partir de um arquivos existente.The following example shows how to create a new entry in a zip archive from an existing file.

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

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string zipPath = @"c:\users\exampleuser\start.zip";
            string extractPath = @"c:\users\exampleuser\extract";
            string newFile = @"c:\users\exampleuser\NewFile.txt";
            
            using (ZipArchive archive = ZipFile.Open(zipPath, ZipArchiveMode.Update))
            {
                archive.CreateEntryFromFile(newFile, "NewEntry.txt");
                archive.ExtractToDirectory(extractPath);
            } 
        }
    }
}
Imports System.IO
Imports System.IO.Compression

Module Module1

    Sub Main()
        Dim zipPath As String = "c:\users\exampleuser\end.zip"
        Dim extractPath As String = "c:\users\exampleuser\extract"
        Dim newFile As String = "c:\users\exampleuser\NewFile.txt"

        Using archive As ZipArchive = ZipFile.Open(zipPath, ZipArchiveMode.Update)
            archive.CreateEntryFromFile(newFile, "NewEntry.txt", CompressionLevel.Fastest)
            archive.ExtractToDirectory(extractPath)
        End Using
    End Sub

End Module

Comentários

A nova entrada no arquivo contém o conteúdo do arquivo especificado por sourceFileName.The new entry in the archive contains the contents of the file specified by sourceFileName. Se uma entrada com o nome especificado (entryName) já existir no arquivo, uma segunda entrada será criada com um nome idêntico.If an entry with the specified name (entryName) already exists in the archive, a second entry is created with an identical name. A LastWriteTime propriedade da entrada é definida como a última vez em que o arquivo no sistema de arquivos foi alterado.The LastWriteTime property of the entry is set to the last time the file on the file system was changed.

Quando ZipArchiveMode.Update o está presente, o limite de tamanho de uma entrada é Int32.MaxValuelimitado a.When ZipArchiveMode.Update is present, the size limit of an entry is limited to Int32.MaxValue. Esse limite ocorre porque o modo de atualização MemoryStream usa um internamente para permitir a busca necessária ao atualizar um arquivo MemoryStream morto e tem um máximo igual ao tamanho de um int.This limit is because update mode uses a MemoryStream internally to allow the seeking required when updating an archive, and MemoryStream has a maximum equal to the size of an int.

CreateEntryFromFile(ZipArchive, String, String, CompressionLevel) CreateEntryFromFile(ZipArchive, String, String, CompressionLevel) CreateEntryFromFile(ZipArchive, String, String, CompressionLevel)

Arquiva um arquivo, compactando-o usando o nível de compactação especificado e adicionando-o ao arquivo zip.Archives a file by compressing it using the specified compression level and adding it to the zip archive.

public:
[System::Runtime::CompilerServices::Extension]
 static System::IO::Compression::ZipArchiveEntry ^ CreateEntryFromFile(System::IO::Compression::ZipArchive ^ destination, System::String ^ sourceFileName, System::String ^ entryName, System::IO::Compression::CompressionLevel compressionLevel);
public static System.IO.Compression.ZipArchiveEntry CreateEntryFromFile (this System.IO.Compression.ZipArchive destination, string sourceFileName, string entryName, System.IO.Compression.CompressionLevel compressionLevel);
static member CreateEntryFromFile : System.IO.Compression.ZipArchive * string * string * System.IO.Compression.CompressionLevel -> System.IO.Compression.ZipArchiveEntry

Parâmetros

destination
ZipArchive ZipArchive ZipArchive ZipArchive

O arquivo zip ao qual o arquivo será adicionado.The zip archive to add the file to.

sourceFileName
String String String String

O caminho para o arquivo a ser arquivado.The path to the file to be archived. Você pode especificar um caminho absoluto ou relativo.You can specify either a relative or an absolute path. Um caminho relativo é interpretado como relativo ao diretório de trabalho atual.A relative path is interpreted as relative to the current working directory.

entryName
String String String String

O nome da entrada a ser criada no arquivo zip.The name of the entry to create in the zip archive.

compressionLevel
CompressionLevel CompressionLevel 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.One of the enumeration values that indicates whether to emphasize speed or compression effectiveness when creating the entry.

Retornos

Um wrapper para a nova entrada no arquivo zip.A wrapper for the new entry in the zip archive.

Exceções

sourceFileName é Empty, contém somente espaços em branco ou, pelo menos, um caractere inválido.sourceFileName is Empty, contains only white space, or contains at least one invalid character.

- ou --or- entryName é Empty.entryName is Empty.

sourceFileName ou entryName é null.sourceFileName or entryName is null.

sourceFileName é inválido (por exemplo, está em uma unidade não mapeada).sourceFileName is invalid (for example, it is on an unmapped drive).

Em sourceFileName, o caminho especificado, o nome de arquivo, ou ambos excedem o tamanho máximo definido pelo sistema.In sourceFileName, the specified path, file name, or both exceed the system-defined maximum length.

O arquivo especificado por sourceFileName não pode ser aberto ou é muito grande para ser atualizado (o limite atual é Int32.MaxValue).The file specified by sourceFileName cannot be opened, or is too large to be updated (current limit is Int32.MaxValue).

sourceFileName especifica um diretório.sourceFileName specifies a directory.

- ou --or- O chamador não tem a permissão necessária para acessar o arquivo especificado por sourceFileName.The caller does not have the required permission to access the file specified by sourceFileName.

O arquivo especificado por sourceFileName não foi encontrado.The file specified by sourceFileName is not found.

O parâmetro sourceFileName está em um formato inválido.The sourceFileName parameter is in an invalid format.

- ou --or- O arquivo zip não dá suporte à gravação.The zip archive does not support writing.

O arquivo zip foi descartado.The zip archive has been disposed.

Exemplos

O exemplo a seguir mostra como criar uma nova entrada em um arquivo zip a partir dos arquivos existentes e especificar o nível de compactação.The following example shows how to create a new entry in a zip archive from an existing file, and specify the compression level.

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

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string zipPath = @"c:\users\exampleuser\start.zip";
            string extractPath = @"c:\users\exampleuser\extract";
            string newFile = @"c:\users\exampleuser\NewFile.txt";
            
            using (ZipArchive archive = ZipFile.Open(zipPath, ZipArchiveMode.Update))
            {
                archive.CreateEntryFromFile(newFile, "NewEntry.txt", CompressionLevel.Fastest);
                archive.ExtractToDirectory(extractPath);
            } 
        }
    }
}
Imports System.IO
Imports System.IO.Compression

Module Module1

    Sub Main()
        Dim zipPath As String = "c:\users\exampleuser\end.zip"
        Dim extractPath As String = "c:\users\exampleuser\extract"
        Dim newFile As String = "c:\users\exampleuser\NewFile.txt"

        Using archive As ZipArchive = ZipFile.Open(zipPath, ZipArchiveMode.Update)
            archive.CreateEntryFromFile(newFile, "NewEntry.txt", CompressionLevel.Fastest)
            archive.ExtractToDirectory(extractPath)
        End Using
    End Sub

End Module

Comentários

A nova entrada no arquivo contém o conteúdo do arquivo especificado por sourceFileName.The new entry in the archive contains the contents of the file specified by sourceFileName. Se uma entrada com o nome especificado (entryName) já existir no arquivo, uma segunda entrada será criada com um nome idêntico.If an entry with the specified name (entryName) already exists in the archive, a second entry is created with an identical name. A LastWriteTime propriedade da entrada é definida como a última vez em que o arquivo no sistema de arquivos foi alterado.The LastWriteTime property of the entry is set to the last time the file on the file system was changed.

Quando ZipArchiveMode.Update o está presente, o limite de tamanho de uma entrada é Int32.MaxValuelimitado a.When ZipArchiveMode.Update is present, the size limit of an entry is limited to Int32.MaxValue. Esse limite ocorre porque o modo de atualização MemoryStream usa um internamente para permitir a busca necessária ao atualizar um arquivo MemoryStream morto e tem um máximo igual ao tamanho de um int.This limit is because update mode uses a MemoryStream internally to allow the seeking required when updating an archive, and MemoryStream has a maximum equal to the size of an int.

Aplica-se a