Comparteix a través de


ZipFile.Open Método

Definición

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 nullen , 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 nullde , 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 nullen , 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 nullde , 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.

Se aplica a