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
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. |
Open(String, ZipArchiveMode) |
Abre un archivo .zip en la ruta de acceso especificada y en el modo especificado. |
Open(String, ZipArchiveMode, Encoding)
- Source:
- ZipFile.Create.cs
- Source:
- ZipFile.Create.cs
- Source:
- ZipFile.Create.cs
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.
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);
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
La ruta de acceso al archivo para abrir, especificada como una ruta de acceso relativa o absoluta. Una ruta de acceso relativa se interpreta en relación con el directorio de trabajo actual.
- mode
- ZipArchiveMode
Uno de los valores de enumeración que especifica las acciones que se permiten en las entradas del archivo abierto.
- entryNameEncoding
- Encoding
Codificación que se va a usar al leer o escribir nombres de entrada en este archivo. Especifique un valor para este parámetro únicamente cuando se necesite una codificación para la interoperabilidad con herramientas y bibliotecas de archivos zip que no admiten la codificación UTF-8 para los nombres de entrada.
Devoluciones
El archivo zip abierto.
Excepciones
El valor de archiveFileName
es Empty, contiene solo espacios 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.
El valor de archiveFileName
no es válido o no existe (por ejemplo, se encuentra en una unidad no asignada).
No se pudo abrir archiveFileName
.
o bien
mode
está establecido en Create, pero el archivo especificado en archiveFileName
ya existe.
o bien
Se ha producido un 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 obtener acceso al archivo que se especifica en archiveFileName
.
mode
especifica un valor no válido.
mode
está establecido en Read, pero el archivo especificado en archiveFileName
no se encuentra.
archiveFileName
contiene un formato no válido.
archiveFileName
no se puede interpretar como 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 caber en la memoria.
Comentarios
Al establecer 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 Read en equivale a llamar al OpenRead método .
Al establecer 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 .
Al establecer 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, la creación de un archivo ZIP en Update modo no es tan eficaz como crearlo en Create modo.
Al abrir un archivo de archivo ZIP para leer y entryNameEncoding
se establece null
en , los nombres de entrada 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.
Cuando se establece la marca de codificación de idioma, se usa UTF-8 para descodificar el nombre de entrada.
Al abrir un archivo zip para leer y entryNameEncoding
se establece en un valor distinto null
de , los nombres de entrada se descodifican según las reglas siguientes:
Cuando no se establece la marca de codificación de idioma, se usa el especificado
entryNameEncoding
para descodificar el nombre de entrada.Cuando se establece la marca de codificación de idioma, se usa UTF-8 para descodificar el nombre de entrada.
Al escribir en archivos de archivo y entryNameEncoding
se establece null
en , los nombres de entrada se codifican según las reglas siguientes:
En el caso de los nombres de entrada que contienen caracteres fuera del intervalo ASCII, se establece la marca de codificación de idioma y los nombres de entrada se codifican mediante UTF-8.
En el caso de los nombres de entrada que contienen solo caracteres ASCII, no se establece la marca de codificación de idioma y los nombres de entrada se codifican mediante la página de códigos predeterminada del sistema actual.
Cuando se escribe en archivos de archivo y entryNameEncoding
se establece en un valor distinto null
de , se usa para entryNameEncoding
codificar los nombres de entrada 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.
Se aplica a
Open(String, ZipArchiveMode)
- Source:
- ZipFile.Create.cs
- Source:
- ZipFile.Create.cs
- Source:
- ZipFile.Create.cs
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
La ruta de acceso al archivo para abrir, especificada como una ruta de acceso relativa o absoluta. Una ruta de acceso relativa se interpreta en relación con el directorio de trabajo actual.
- mode
- ZipArchiveMode
Uno de los valores de enumeración que especifica las acciones que se permiten en las entradas del archivo abierto.
Devoluciones
El archivo zip abierto.
Excepciones
El valor de archiveFileName
es Empty, contiene solo espacios 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.
El valor de archiveFileName
no es válido o no existe (por ejemplo, se encuentra en una unidad no asignada).
No se pudo abrir archiveFileName
.
o bien
mode
está establecido en Create, pero el archivo especificado en archiveFileName
ya existe.
o bien
Se ha producido un 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 obtener acceso al archivo que se especifica en archiveFileName
.
mode
especifica un valor no válido.
mode
está establecido en Read, pero el archivo especificado en archiveFileName
no se encuentra.
archiveFileName
contiene un formato no válido.
archiveFileName
no se puede interpretar como 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 caber en 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
Al establecer 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 Read en equivale a llamar al OpenRead método .
Al establecer 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 .
Al establecer 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, la creación de un archivo ZIP en Update modo no es tan eficaz como crearlo en Create modo.