ZipFileExtensions.CreateEntryFromFile Método

Definición

Archiva un archivo comprimiéndolo y agregándolo al archivo zip.

Sobrecargas

CreateEntryFromFile(ZipArchive, String, String)

Archiva un archivo comprimiéndolo y agregándolo al archivo zip.

CreateEntryFromFile(ZipArchive, String, String, CompressionLevel)

Archiva un archivo comprimiéndolo mediante el nivel especificado de compresión y agregándolo al archivo zip.

CreateEntryFromFile(ZipArchive, String, String)

Source:
ZipFileExtensions.ZipArchive.Create.cs
Source:
ZipFileExtensions.ZipArchive.Create.cs
Source:
ZipFileExtensions.ZipArchive.Create.cs

Archiva un archivo comprimiéndolo y agregándolo al archivo zip.

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

Archivo .zip al que se agrega el archivo.

sourceFileName
String

Ruta de acceso al archivo que se va a archivar. Puede especificar una ruta de acceso relativa o absoluta. Una ruta de acceso relativa se interpreta en relación con el directorio de trabajo actual.

entryName
String

Nombre de la entrada que se va a crear en el archivo zip.

Devoluciones

Un contenedor para la nueva entrada en el archivo zip.

Excepciones

El valor de sourceFileName es Empty, contiene solo espacios en blanco o contiene al menos un carácter no válido.

o bien

entryName es Empty.

sourceFileName o entryName es null.

En sourceFileName, la ruta de acceso especificada, el nombre de archivo o ambos superan la longitud máxima definida por el sistema.

sourceFileName no es válido (por ejemplo, está en una unidad no asignada).

El archivo especificado por sourceFileName no se puede abrir o es demasiado grande para actualizarse (el límite actual es Int32.MaxValue).

sourceFileName especifica un directorio.

O bien

El autor de la llamada no tiene el permiso necesario para obtener acceso al archivo que especifica sourceFileName.

No se encuentra el archivo especificado por sourceFileName.

El parámetro sourceFileName tiene un formato que no es válido.

O bien

El archivo zip no admite escritura.

El archivo .zip se ha desechado.

Ejemplos

En el ejemplo siguiente se muestra cómo crear una nueva entrada en un archivo ZIP a partir de un archivo existente.

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

Comentarios

La nueva entrada del archivo contiene el contenido del archivo especificado por sourceFileName. Si ya existe una entrada con el nombre especificado (entryName) en el archivo, se crea una segunda entrada con un nombre idéntico. La LastWriteTime propiedad de la entrada se establece en la última vez que se cambió el archivo en el sistema de archivos.

Cuando ZipArchiveMode.Update está presente, el límite de tamaño de una entrada se limita a Int32.MaxValue. Este límite se debe a que el modo de actualización usa internamente MemoryStream para permitir la búsqueda necesaria al actualizar un archivo y MemoryStream tiene un tamaño máximo igual al tamaño de un int.

Se aplica a

CreateEntryFromFile(ZipArchive, String, String, CompressionLevel)

Source:
ZipFileExtensions.ZipArchive.Create.cs
Source:
ZipFileExtensions.ZipArchive.Create.cs
Source:
ZipFileExtensions.ZipArchive.Create.cs

Archiva un archivo comprimiéndolo mediante el nivel especificado de compresión y agregándolo al archivo zip.

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
<Extension()>
Public Function CreateEntryFromFile (destination As ZipArchive, sourceFileName As String, entryName As String, compressionLevel As CompressionLevel) As ZipArchiveEntry

Parámetros

destination
ZipArchive

Archivo .zip al que se agrega el archivo.

sourceFileName
String

Ruta de acceso al archivo que se va a archivar. Puede especificar una ruta de acceso relativa o absoluta. Una ruta de acceso relativa se interpreta en relación con el directorio de trabajo actual.

entryName
String

Nombre de la entrada que se va a crear en el archivo zip.

compressionLevel
CompressionLevel

Uno de los valores de enumeración que indica si se va a hacer hincapié en la eficacia de velocidad o de compresión al crear la entrada.

Devoluciones

Un contenedor para la nueva entrada en el archivo zip.

Excepciones

El valor de sourceFileName es Empty, contiene solo espacios en blanco o contiene al menos un carácter no válido.

o bien

entryName es Empty.

sourceFileName o entryName es null.

sourceFileName no es válido (por ejemplo, está en una unidad no asignada).

En sourceFileName, la ruta de acceso especificada, el nombre de archivo o ambos superan la longitud máxima definida por el sistema.

El archivo especificado por sourceFileName no se puede abrir o es demasiado grande para actualizarse (el límite actual es Int32.MaxValue).

sourceFileName especifica un directorio.

O bien

El autor de la llamada no tiene el permiso necesario para obtener acceso al archivo que especifica sourceFileName.

No se encuentra el archivo especificado por sourceFileName.

El parámetro sourceFileName tiene un formato que no es válido.

O bien

El archivo zip no admite escritura.

El archivo .zip se ha desechado.

Ejemplos

En el ejemplo siguiente se muestra cómo crear una nueva entrada en un archivo ZIP a partir de un archivo existente y especificar el nivel de compresión.

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

Comentarios

La nueva entrada del archivo contiene el contenido del archivo especificado por sourceFileName. Si ya existe una entrada con el nombre especificado (entryName) en el archivo, se crea una segunda entrada con un nombre idéntico. La LastWriteTime propiedad de la entrada se establece en la última vez que se cambió el archivo en el sistema de archivos.

Cuando ZipArchiveMode.Update está presente, el límite de tamaño de una entrada se limita a Int32.MaxValue. Este límite se debe a que el modo de actualización usa internamente MemoryStream para permitir la búsqueda necesaria al actualizar un archivo y MemoryStream tiene un tamaño máximo igual al tamaño de un int.

Se aplica a