ZipFile.ExtractToDirectory Método

Definición

Extrae todos los archivos del archivo zip especificado en un directorio del sistema de archivos.

Sobrecargas

ExtractToDirectory(String, String)

Extrae todos los archivos del archivo zip especificado en un directorio del sistema de archivos.

ExtractToDirectory(String, String, Boolean)

Extrae todos los archivos del archivo especificado a un directorio en el sistema de archivos.

ExtractToDirectory(String, String, Encoding)

Extrae todos los archivos de archivo zip especificado en un directorio del sistema de archivos y utiliza la codificación de caracteres especificada para los nombres de entrada.

ExtractToDirectory(String, String, Encoding, Boolean)

Extrae todos los archivos del archivo especificado a un directorio en el sistema de archivos.

ExtractToDirectory(String, String)

Extrae todos los archivos del archivo zip especificado en un directorio del sistema de archivos.

public:
 static void ExtractToDirectory(System::String ^ sourceArchiveFileName, System::String ^ destinationDirectoryName);
public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName);
static member ExtractToDirectory : string * string -> unit
Public Shared Sub ExtractToDirectory (sourceArchiveFileName As String, destinationDirectoryName As String)

Parámetros

sourceArchiveFileName
String

La ruta de acceso al archivo que se va a extraer.

destinationDirectoryName
String

La ruta de acceso al directorio en el que se van a colocar los archivos extraídos, 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.

Excepciones

destinationDirectoryName o sourceArchiveFileName es Empty, contiene solo espacios en blanco o contiene al menos un carácter no válido.

destinationDirectoryName o sourceArchiveFileName es null.

La ruta de acceso en destinationDirectoryName o sourceArchiveFileName supera la longitud máxima definida por el sistema.

La ruta de acceso especificada no es válida (por ejemplo, está en una unidad no asignada).

El nombre de una entrada en el archivo es Empty, contiene solo espacios en blanco, o contiene al menos un carácter no válido.

o bien

La extracción de una entrada del archivo crearía un archivo que está fuera del directorio especificado por destinationDirectoryName. (Por ejemplo, esto puede ocurrir si el nombre de la entrada contiene descriptores de acceso del directorio primario).

O bien

Una entrada de archivo que se va a extraer tiene el mismo nombre que una entrada que ya se ha extraído o que existe en destinationDirectoryName.

El llamador no tiene el permiso necesario para tener acceso al archivo o el directorio de destino.

destinationDirectoryName o sourceArchiveFileName contiene un formato no válido.

No se encontró sourceArchiveFileName.

El archivo especificado por sourceArchiveFileName no es un archivo zip válido.

o bien

Una entrada de archivo no se encontró o se dañó.

o bien

Una entrada de archivo se comprimió mediante un método de compresión que no se admite.

Ejemplos

En este ejemplo se muestra cómo crear y extraer un archivo ZIP mediante la ZipFile clase . Comprime el contenido de una carpeta en un archivo ZIP y extrae ese contenido en una carpeta nueva. Para usar la clase ZipFile, debe hacer referencia al ensamblado System.IO.Compression.FileSystem del proyecto.

using System;
using System.IO.Compression;

class Program
{
    static void Main(string[] args)
    {
        string startPath = @".\start";
        string zipPath = @".\result.zip";
        string extractPath = @".\extract";

        ZipFile.CreateFromDirectory(startPath, zipPath);

        ZipFile.ExtractToDirectory(zipPath, extractPath);
    }
}
Imports System.IO.Compression

Module Module1

    Sub Main()
        Dim startPath As String = ".\start"
        Dim zipPath As String = ".\result.zip"
        Dim extractPath As String = ".\extract"

        ZipFile.CreateFromDirectory(startPath, zipPath)

        ZipFile.ExtractToDirectory(zipPath, extractPath)
    End Sub

End Module

Comentarios

Este método crea el directorio especificado y todos los subdirectorios. El directorio de destino no puede existir. Las excepciones relacionadas con la validación de las rutas de acceso en los destinationDirectoryName parámetros o sourceArchiveFileName se inician antes de la extracción. De lo contrario, si se produce un error durante la extracción, el archivo permanece parcialmente extraído. Cada archivo extraído tiene la misma ruta de acceso relativa al directorio especificado por destinationDirectoryName , ya que su entrada de origen tiene la raíz del archivo.

Se aplica a

ExtractToDirectory(String, String, Boolean)

Extrae todos los archivos del archivo especificado a un directorio en el sistema de archivos.

public:
 static void ExtractToDirectory(System::String ^ sourceArchiveFileName, System::String ^ destinationDirectoryName, bool overwriteFiles);
public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName, bool overwriteFiles);
static member ExtractToDirectory : string * string * bool -> unit
Public Shared Sub ExtractToDirectory (sourceArchiveFileName As String, destinationDirectoryName As String, overwriteFiles As Boolean)

Parámetros

sourceArchiveFileName
String

La ruta de acceso en el sistema de archivos al archivo que se va a extraer.

destinationDirectoryName
String

La ruta de acceso al directorio de destino en el sistema de archivos.

overwriteFiles
Boolean

true para sobrescribir archivos; en caso contrario false.

Excepciones

sourceArchiveFileName o destinationDirectoryName es una cadena de longitud cero que solo contiene espacios en blanco, o bien uno o varios caracteres no válidos definidos por InvalidPathChars.

sourceArchiveFileName o destinationDirectoryName es null.

sourceArchiveFileName o destinationDirectoryName especifica que una ruta de acceso, un nombre de archivo o ambos superan la longitud máxima definida por el sistema.

La ruta de acceso que especifica sourceArchiveFileName o destinationDirectoryName no es válida (por ejemplo, está en una unidad no asignada).

overwriteFiles es false y destinationDirectoryName ya contiene un archivo con el mismo nombre que un archivo que se va a extraer.

o bien

Error de E/S.

o bien

El nombre de un elemento ZipArchiveEntry es de longitud cero que solo contiene espacios en blanco, o bien uno o varios caracteres no válidos definidos por InvalidPathChars.

o bien

La extracción de un elemento ZipArchiveEntry daría como resultado un destino de archivo que está fuera del directorio de destino (por ejemplo, debido a descriptores de acceso de directorios primarios).

o bien

Un ZipArchiveEntry tiene el mismo nombre que una entrada del mismo archivo que ya se ha extraído.

El llamador no dispone del permiso requerido.

sourceArchiveFileName o destinationDirectoryName está en un formato no válido.

No se encontró sourceArchiveFileName.

El archivo que especifica sourceArchiveFileName no es un elemento ZipArchive válido.

o bien

Un elemento ZipArchiveEntry no se ha encontrado o se ha dañado.

O bien

Un elemento ZipArchiveEntry se ha comprimido mediante un método de compresión que no se admite.

Comentarios

Si se produce un error al extraer el archivo, el archivo permanecerá parcialmente extraído.

Cada entrada se extraerá de modo que el archivo extraído tenga la misma ruta de acceso relativa a la destinationDirectoryName que la entrada tiene en el archivo.

Los sourceArchiveFileName parámetros y destinationDirectoryName aceptan rutas de acceso relativas y absolutas. Una ruta de acceso relativa se interpreta en relación con el directorio de trabajo actual.

Si un archivo que se va a archivar tiene una hora de última modificación no válida, se usará la primera fecha y hora que se puede representar en el formato de marca de tiempo Zip (medianoche del 1 de enero de 1980).

Se aplica a

ExtractToDirectory(String, String, Encoding)

Extrae todos los archivos de archivo zip especificado en un directorio del sistema de archivos y utiliza la codificación de caracteres especificada para los nombres de entrada.

public:
 static void ExtractToDirectory(System::String ^ sourceArchiveFileName, System::String ^ destinationDirectoryName, System::Text::Encoding ^ entryNameEncoding);
public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName, System.Text.Encoding entryNameEncoding);
public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName, System.Text.Encoding? entryNameEncoding);
static member ExtractToDirectory : string * string * System.Text.Encoding -> unit
Public Shared Sub ExtractToDirectory (sourceArchiveFileName As String, destinationDirectoryName As String, entryNameEncoding As Encoding)

Parámetros

sourceArchiveFileName
String

La ruta de acceso al archivo que se va a extraer.

destinationDirectoryName
String

La ruta de acceso al directorio en el que se van a colocar los archivos extraídos, 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.

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.

Excepciones

destinationDirectoryName o sourceArchiveFileName 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.

destinationDirectoryName o sourceArchiveFileName es null.

La ruta de acceso en destinationDirectoryName o sourceArchiveFileName supera la longitud máxima definida por el sistema.

La ruta de acceso especificada no es válida (por ejemplo, está en una unidad no asignada).

El nombre de una entrada en el archivo es Empty, contiene solo espacios en blanco, o contiene al menos un carácter no válido.

o bien

La extracción de una entrada del archivo crearía un archivo que está fuera del directorio especificado por destinationDirectoryName. (Por ejemplo, esto puede ocurrir si el nombre de la entrada contiene descriptores de acceso del directorio primario).

O bien

Una entrada de archivo que se va a extraer tiene el mismo nombre que una entrada que ya se ha extraído o que existe en destinationDirectoryName.

El llamador no tiene el permiso necesario para tener acceso al archivo o el directorio de destino.

destinationDirectoryName o sourceArchiveFileName contiene un formato no válido.

No se encontró sourceArchiveFileName.

El archivo especificado por sourceArchiveFileName no es un archivo zip válido.

o bien

Una entrada de archivo no se encontró o se dañó.

o bien

Una entrada de archivo se comprimió mediante un método de compresión que no se admite.

Comentarios

Este método crea el directorio especificado y todos los subdirectorios, si es necesario. Las excepciones relacionadas con la validación de las rutas de acceso en los destinationDirectoryName parámetros o sourceArchiveFileName se inician antes de la extracción. De lo contrario, si se produce un error durante la extracción, el archivo permanece parcialmente extraído. Cada archivo extraído tiene la misma ruta de acceso relativa al directorio especificado por destinationDirectoryName , ya que su entrada de origen tiene la raíz del archivo.

Si entryNameEncoding se establece en un valor distinto nullde , los nombres de entrada se descodifican según las reglas siguientes:

  • Para los nombres de entrada en los que no se establece la marca de codificación de idioma (en la marca de bits de uso general del encabezado de archivo local), los nombres de entrada se descodifican mediante la codificación especificada.
  • Para las entradas en las que se establece la marca de codificación de idioma, los nombres de entrada se descodifican mediante UTF-8.

Si entryNameEncoding se establece nullen , los nombres de entrada se descodifican según las reglas siguientes:

  • Para las entradas en las que no se establece la marca de codificación de idioma (en la marca de bits de uso general del encabezado de archivo local), los nombres de entrada se descodifican mediante la página de códigos predeterminada del sistema actual.
  • Para las entradas en las que se establece la marca de codificación de idioma, los nombres de entrada se descodifican mediante UTF-8.

Se aplica a

ExtractToDirectory(String, String, Encoding, Boolean)

Extrae todos los archivos del archivo especificado a un directorio en el sistema de archivos.

public:
 static void ExtractToDirectory(System::String ^ sourceArchiveFileName, System::String ^ destinationDirectoryName, System::Text::Encoding ^ entryNameEncoding, bool overwriteFiles);
public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName, System.Text.Encoding? entryNameEncoding, bool overwriteFiles);
public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName, System.Text.Encoding entryNameEncoding, bool overwriteFiles);
static member ExtractToDirectory : string * string * System.Text.Encoding * bool -> unit
Public Shared Sub ExtractToDirectory (sourceArchiveFileName As String, destinationDirectoryName As String, entryNameEncoding As Encoding, overwriteFiles As Boolean)

Parámetros

sourceArchiveFileName
String

La ruta de acceso en el sistema de archivos al archivo que se va a extraer.

destinationDirectoryName
String

La ruta de acceso al directorio de destino en el sistema de archivos.

entryNameEncoding
Encoding

Codificación que se va a usar al leer nombres de entrada en este elemento ZipArchive.

overwriteFiles
Boolean

true para sobrescribir archivos; en caso contrario false.

Excepciones

sourceArchiveFileName o destinationDirectoryName es una cadena de longitud cero que solo contiene espacios en blanco, o bien uno o varios caracteres no válidos definidos por InvalidPathChars.

o bien

entryNameEncoding se establece en una codificación Unicode distinta de UTF-8.

sourceArchiveFileName o destinationDirectoryName es null.

sourceArchiveFileName o destinationDirectoryName especifica que una ruta de acceso, un nombre de archivo o ambos superan la longitud máxima definida por el sistema.

La ruta de acceso que especifica sourceArchiveFileName o destinationDirectoryName no es válida (por ejemplo, está en una unidad no asignada).

overwriteFiles es false y una entrada de archivo que se va a extraer tiene el mismo nombre que un archivo que ya existe en destinationDirectoryName.

o bien

Error de E/S.

o bien

El nombre de un elemento ZipArchiveEntry es de longitud cero que solo contiene espacios en blanco, o bien uno o varios caracteres no válidos definidos por InvalidPathChars.

o bien

La extracción de un elemento ZipArchiveEntry daría como resultado un destino de archivo que está fuera del directorio de destino (por ejemplo, debido a descriptores de acceso de directorios primarios).

o bien

Un elemento ZipArchiveEntry tiene el mismo nombre que una entrada ya extraída del mismo archivo.

El llamador no dispone del permiso requerido.

sourceArchiveFileName o destinationDirectoryName está en un formato no válido.

No se encontró sourceArchiveFileName.

El archivo que especifica sourceArchiveFileName no es un elemento ZipArchive válido.

o bien

Una entrada de archivo no se encontró o se dañó.

o bien

Una entrada de archivo se ha comprimido mediante un método de compresión que no se admite.

Comentarios

Si se produce un error al extraer el archivo, el archivo permanecerá parcialmente extraído.

Cada entrada se extraerá de modo que el archivo extraído tenga la misma ruta de acceso relativa a la destinationDirectoryName que la entrada tiene para el archivo.

Los sourceArchiveFileName parámetros y destinationDirectoryName aceptan rutas de acceso relativas y absolutas. Una ruta de acceso relativa se interpreta en relación con el directorio de trabajo actual.

Si un archivo que se va a archivar tiene una hora de última modificación no válida, se usará la primera fecha y hora que se puede representar en el formato de marca de tiempo Zip (medianoche del 1 de enero de 1980).

Se aplica a