ZipFile.Open 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í.
Abre un archivo ZIP en la ruta de acceso especificada y en el modo especificado.
Sobrecargas
| Nombre | Description |
|---|---|
| Open(String, ZipArchiveMode) |
Abre un archivo ZIP en la ruta de acceso especificada y en el modo especificado. |
| Open(String, ZipArchiveMode, Encoding) |
Abre un archivo ZIP en la ruta de acceso especificada, en el modo especificado y usando la codificación de caracteres especificada para los nombres de entrada y los comentarios. |
Open(String, ZipArchiveMode)
Abre un archivo ZIP en la ruta de acceso especificada y en el modo especificado.
public:
static System::IO::Compression::ZipArchive ^ Open(System::String ^ archiveFileName, System::IO::Compression::ZipArchiveMode mode);
public static System.IO.Compression.ZipArchive Open(string archiveFileName, System.IO.Compression.ZipArchiveMode mode);
static member Open : string * System.IO.Compression.ZipArchiveMode -> System.IO.Compression.ZipArchive
Public Shared Function Open (archiveFileName As String, mode As ZipArchiveMode) As ZipArchive
Parámetros
- archiveFileName
- String
Ruta de acceso al archivo que se va a abrir, especificada como una ruta de acceso relativa o absoluta. Una ruta de acceso relativa se interpreta como relativa al directorio de trabajo actual.
- mode
- ZipArchiveMode
Uno de los valores de enumeración que especifica las acciones permitidas en las entradas del archivo abierto.
Devoluciones
Archivo zip abierto.
Excepciones
archiveFileName es Empty, contiene solo espacio en blanco o contiene al menos un carácter no válido.
archiveFileName es null.
En archiveFileName, la ruta de acceso especificada, el nombre de archivo o ambos superan la longitud máxima definida por el sistema.
archiveFileName no es válido o no existe (por ejemplo, se encuentra en una unidad no asignada).
archiveFileName no se pudo abrir.
O bien
mode se establece Createen , pero el archivo especificado en archiveFileName ya existe.
O bien
Error de E/S no especificado al abrir el archivo.
archiveFileName especifica un directorio.
O bien
El autor de la llamada no tiene el permiso necesario para acceder al archivo especificado en archiveFileName.
mode especifica un valor no válido.
mode se establece Readen , pero no se encuentra el archivo especificado en archiveFileName .
archiveFileName contiene un formato no válido.
archiveFileName no se pudo interpretar como un archivo zip.
O bien
mode es Update, pero falta una entrada o está dañada y no se puede leer.
O bien
mode es Update, pero una entrada es demasiado grande para ajustarse a la memoria.
Ejemplos
En el ejemplo siguiente se muestra cómo abrir un archivo ZIP en el modo de actualización y agregar una entrada al archivo.
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);
}
}
}
}
open System.IO.Compression
let zipPath = @"c:\users\exampleuser\start.zip"
let extractPath = @"c:\users\exampleuser\extract"
let newFile = @"c:\users\exampleuser\NewFile.txt"
do
use archive = ZipFile.Open(zipPath, ZipArchiveMode.Update)
archive.CreateEntryFromFile(newFile, "NewEntry.txt") |> ignore
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
Cuando se establece el mode parámetro Readen , el archivo se abre con Open desde la FileMode enumeración como el valor del modo de archivo. Si el archivo no existe, se produce una FileNotFoundException excepción. Establecer el mode parámetro en Read es equivalente a llamar al OpenRead método .
Cuando se establece el mode parámetro Createen , el archivo se abre con FileMode.CreateNew como el valor del modo de archivo. Si el archivo ya existe, se produce una IOException excepción .
Cuando se establece el mode parámetro Updateen , el archivo se abre con FileMode.OpenOrCreate como el valor del modo de archivo. Si el archivo existe, se abre. Se pueden modificar las entradas existentes y se pueden crear nuevas entradas. Si el archivo no existe, se crea un nuevo archivo; sin embargo, crear un archivo zip en Update modo no es tan eficaz como crearlo en Create modo.
Se aplica a
Open(String, ZipArchiveMode, Encoding)
Abre un archivo ZIP en la ruta de acceso especificada, en el modo especificado y usando la codificación de caracteres especificada para los nombres de entrada y los comentarios.
public:
static System::IO::Compression::ZipArchive ^ Open(System::String ^ archiveFileName, System::IO::Compression::ZipArchiveMode mode, System::Text::Encoding ^ entryNameEncoding);
public static System.IO.Compression.ZipArchive Open(string archiveFileName, System.IO.Compression.ZipArchiveMode mode, System.Text.Encoding entryNameEncoding);
static member Open : string * System.IO.Compression.ZipArchiveMode * System.Text.Encoding -> System.IO.Compression.ZipArchive
Public Shared Function Open (archiveFileName As String, mode As ZipArchiveMode, entryNameEncoding As Encoding) As ZipArchive
Parámetros
- archiveFileName
- String
Ruta de acceso al archivo que se va a abrir, especificada como una ruta de acceso relativa o absoluta. Una ruta de acceso relativa se interpreta como relativa al directorio de trabajo actual.
- mode
- ZipArchiveMode
Uno de los valores de enumeración que especifica las acciones permitidas en las entradas del archivo abierto.
- entryNameEncoding
- Encoding
Codificación que se va a usar al leer o escribir nombres de entrada y comentarios en este archivo. Especifique un valor para este parámetro solo cuando se requiera una codificación para la interoperabilidad con las herramientas y bibliotecas de archivo zip que no admiten la codificación UTF-8 para nombres de entrada o comentarios.
Devoluciones
Archivo zip abierto.
Excepciones
archiveFileName es Empty, contiene solo espacio en blanco o contiene al menos un carácter no válido.
O bien
entryNameEncoding se establece en una codificación Unicode distinta de UTF-8.
archiveFileName es null.
En archiveFileName, la ruta de acceso especificada, el nombre de archivo o ambos superan la longitud máxima definida por el sistema.
archiveFileName no es válido o no existe (por ejemplo, se encuentra en una unidad no asignada).
archiveFileName no se pudo abrir.
O bien
mode se establece Createen , pero el archivo especificado en archiveFileName ya existe.
O bien
Error de E/S no especificado al abrir el archivo.
archiveFileName especifica un directorio.
O bien
El autor de la llamada no tiene el permiso necesario para acceder al archivo especificado en archiveFileName.
mode especifica un valor no válido.
mode se establece Readen , pero no se encuentra el archivo especificado en archiveFileName .
archiveFileName contiene un formato no válido.
archiveFileName no se pudo interpretar como un archivo zip.
O bien
mode es Update, pero falta una entrada o está dañada y no se puede leer.
O bien
mode es Update, pero una entrada es demasiado grande para ajustarse a la memoria.
Comentarios
Cuando se establece el mode parámetro Readen , el archivo se abre con FileMode.Open como el valor del modo de archivo. Si el archivo no existe, se produce una FileNotFoundException excepción. Establecer el mode parámetro en Read es equivalente a llamar al OpenRead método .
Cuando se establece el mode parámetro Createen , el archivo se abre con FileMode.CreateNew como el valor del modo de archivo. Si el archivo ya existe, se produce una IOException excepción .
Cuando se establece el mode parámetro Updateen , el archivo se abre con FileMode.OpenOrCreate como el valor del modo de archivo. Si el archivo existe, se abre. Se pueden modificar las entradas existentes y se pueden crear nuevas entradas. Si el archivo no existe, se crea un nuevo archivo; sin embargo, crear un archivo zip en Update modo no es tan eficaz como crearlo en Create modo.
Al abrir un archivo zip para leer y entryNameEncoding se establece nullen , los nombres de entrada y los comentarios se descodifican según las reglas siguientes:
- Cuando no se establece la marca de codificación de idioma (en la marca de bits de uso general del encabezado de archivo local), la página de códigos predeterminada del sistema actual se usa para descodificar el nombre de entrada y el comentario.
- Cuando se establece la marca de codificación de idioma, se usa UTF-8 para descodificar el nombre y el comentario de la entrada.
Al abrir un archivo zip para leer y entryNameEncoding se establece en un valor distinto de null, los nombres de entrada y los comentarios se descodifican según las reglas siguientes:
- Cuando no se establece la marca de codificación de idioma, el especificado
entryNameEncodingse usa para descodificar el nombre de entrada y el comentario. - Cuando se establece la marca de codificación de idioma, se usa UTF-8 para descodificar el nombre y el comentario de la entrada.
Al escribir en archivos de archivo y entryNameEncoding se establece nullen , los nombres de entrada y los comentarios se codifican según las reglas siguientes:
- Para los nombres de entrada o comentarios que contienen caracteres fuera del intervalo ASCII, se establece la marca de codificación de idioma y los nombres de entrada y los comentarios se codifican mediante UTF-8.
- En el caso de los nombres de entrada o comentarios que contienen solo caracteres ASCII, no se establece la marca de codificación de idioma y los nombres de entrada y los comentarios se codifican mediante la página de códigos predeterminada del sistema actual.
Al escribir en archivos de archivo y entryNameEncoding se establece en un valor distinto nullde , el especificado entryNameEncoding se usa para codificar los nombres de entrada y los comentarios en bytes. La marca de codificación de idioma (en la marca de bits de uso general del encabezado de archivo local) solo se establece cuando la codificación especificada es una codificación UTF-8.