ZipFileExtensions.CreateEntryFromFile Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Archiva un archivo comprimiéndolo y agregándolo al archivo ZIP.
Sobrecargas
| Nombre | Description |
|---|---|
| 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 de compresión especificado y agregándolo al archivo ZIP. |
CreateEntryFromFile(ZipArchive, String, String)
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 va a agregar 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 como relativa al directorio de trabajo actual.
- entryName
- String
Nombre de la entrada que se va a crear en el archivo ZIP.
Devoluciones
Contenedor para la nueva entrada en el archivo ZIP.
Excepciones
sourceFileName es Empty, contiene solo espacio 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 acceder al archivo especificado por sourceFileName.
No se encuentra el archivo especificado por sourceFileName .
El sourceFileName parámetro tiene un formato no válido.
O bien
El archivo zip no admite la escritura.
Se ha eliminado el archivo ZIP.
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 valor máximo igual al tamaño de un int.
Se aplica a
CreateEntryFromFile(ZipArchive, String, String, CompressionLevel)
Archiva un archivo comprimiéndolo mediante el nivel de compresión especificado 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 va a agregar 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 como relativa al 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 debe resaltar la velocidad o la eficacia de compresión al crear la entrada.
Devoluciones
Contenedor para la nueva entrada en el archivo ZIP.
Excepciones
sourceFileName es Empty, contiene solo espacio 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 acceder al archivo especificado por sourceFileName.
No se encuentra el archivo especificado por sourceFileName .
El sourceFileName parámetro tiene un formato no válido.
O bien
El archivo zip no admite la escritura.
Se ha eliminado el archivo ZIP.
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 valor máximo igual al tamaño de un int.