ZipFile.ExtractToDirectory ZipFile.ExtractToDirectory ZipFile.ExtractToDirectory ZipFile.ExtractToDirectory Method

Definición

Extrae todos los archivos del archivo zip especificado en un directorio del sistema de archivos.Extracts all the files in the specified zip archive to a directory on the file system.

Sobrecargas

ExtractToDirectory(String, String) ExtractToDirectory(String, String) ExtractToDirectory(String, String) ExtractToDirectory(String, String)

Extrae todos los archivos del archivo zip especificado en un directorio del sistema de archivos.Extracts all the files in the specified zip archive to a directory on the file system.

ExtractToDirectory(String, String, Boolean) ExtractToDirectory(String, String, Boolean) ExtractToDirectory(String, String, Boolean) ExtractToDirectory(String, String, Boolean)

Extrae todos los archivos en el archivo especificado en un directorio en el sistema de archivos.Extracts all of the files in the specified archive to a directory on the file system.

ExtractToDirectory(String, String, Encoding) ExtractToDirectory(String, String, Encoding) ExtractToDirectory(String, String, Encoding) 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.Extracts all the files in the specified zip archive to a directory on the file system and uses the specified character encoding for entry names.

ExtractToDirectory(String, String, Encoding, Boolean) ExtractToDirectory(String, String, Encoding, Boolean) ExtractToDirectory(String, String, Encoding, Boolean) ExtractToDirectory(String, String, Encoding, Boolean)

Extrae todos los archivos en el archivo especificado en un directorio en el sistema de archivos.Extracts all of the files in the specified archive to a directory on the file system.

ExtractToDirectory(String, String) ExtractToDirectory(String, String) ExtractToDirectory(String, String) ExtractToDirectory(String, String)

Extrae todos los archivos del archivo zip especificado en un directorio del sistema de archivos.Extracts all the files in the specified zip archive to a directory on the file system.

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 String String String

La ruta de acceso al archivo que se va a extraer.The path to the archive that is to be extracted.

destinationDirectoryName
String String String 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.The path to the directory in which to place the extracted files, specified as a relative or absolute path. Una ruta de acceso relativa se interpreta en relación con el directorio de trabajo actual.A relative path is interpreted as relative to the current working directory.

Excepciones

destinationDirectoryName o sourceArchiveFileName es Empty, contiene solo espacios en blanco o contiene al menos un carácter no válido.destinationDirectoryName or sourceArchiveFileName is Empty, contains only white space, or contains at least one invalid character.

destinationDirectoryName o sourceArchiveFileName es null.destinationDirectoryName or sourceArchiveFileName is null.

La ruta de acceso especificada en destinationDirectoryName o sourceArchiveFileName supera la longitud máxima definida por el sistema.The specified path in destinationDirectoryName or sourceArchiveFileName exceeds the system-defined maximum length.

La ruta de acceso especificada no es válida (por ejemplo, está en una unidad no asignada).The specified path is invalid (for example, it is on an unmapped drive).

Ya existe un directorio especificado por destinationDirectoryName.The directory specified by destinationDirectoryName already exists.

-o bien--or- El nombre de una entrada del archivo es Empty, contiene solo espacios en blanco o contiene al menos un carácter no válido.The name of an entry in the archive is Empty, contains only white space, or contains at least one invalid character.

-o bien--or- Extraer una entrada del archivo crearía un archivo que está fuera del directorio especificado por destinationDirectoryName.Extracting an archive entry would create a file that is outside the directory specified by destinationDirectoryName. (Por ejemplo, estos podría suceder si el nombre de la entrada contiene descriptores de acceso del directorio principal).(For example, this might happen if the entry name contains parent directory accessors.) -o bien--or- Para extraer una entrada del archivo tiene el mismo nombre que una entrada que ya se ha extraído del mismo archivo.An archive entry to extract has the same name as an entry that has already been extracted from the same archive.

El llamador no tiene el permiso necesario para tener acceso al archivo o el directorio de destino.The caller does not have the required permission to access the archive or the destination directory.

destinationDirectoryName o sourceArchiveFileName contiene un formato no válido.destinationDirectoryName or sourceArchiveFileName contains an invalid format.

No se encontró sourceArchiveFileName.sourceArchiveFileName was not found.

El archivo especificado por sourceArchiveFileName no es un archivo zip válido.The archive specified by sourceArchiveFileName is not a valid zip archive.

-o bien--or- Una entrada de archivo no se encontró o está dañada.An archive entry was not found or was corrupt.

-o bien--or- Una entrada de archivo se comprimió mediante un método de compresión que no se admite.An archive entry was compressed by using a compression method that is not supported.

Ejemplos

En este ejemplo se muestra cómo crear y extraer un archivo zip mediante el ZipFile clase.This example shows how to create and extract a zip archive by using the ZipFile class. Comprime el contenido de una carpeta en un archivo zip y extrae el contenido a una nueva carpeta.It compresses the contents of a folder into a zip archive and extracts that content to a new folder. Para usar la clase ZipFile, debe hacer referencia al ensamblado System.IO.Compression.FileSystem del proyecto.To use the ZipFile class, you must reference the System.IO.Compression.FileSystem assembly in your project.

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.This method creates the specified directory and all subdirectories. El directorio de destino no puede existir ya.The destination directory cannot already exist. Las excepciones relacionadas con validación de las rutas de acceso en el destinationDirectoryName o sourceArchiveFileName parámetros que se producen antes de la extracción.Exceptions related to validating the paths in the destinationDirectoryName or sourceArchiveFileName parameters are thrown before extraction. En caso contrario, si se produce un error durante la extracción, el archivo permanece parcialmente extraído.Otherwise, if an error occurs during extraction, the archive remains partially extracted. Cada archivo extraído tiene la misma ruta de acceso relativa al directorio especificado por destinationDirectoryName como origen de entrada tiene a la raíz del archivo.Each extracted file has the same relative path to the directory specified by destinationDirectoryName as its source entry has to the root of the archive.

ExtractToDirectory(String, String, Boolean) ExtractToDirectory(String, String, Boolean) ExtractToDirectory(String, String, Boolean) ExtractToDirectory(String, String, Boolean)

Extrae todos los archivos en el archivo especificado en un directorio en el sistema de archivos.Extracts all of the files in the specified archive to a directory on the file system.

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 String String String

La ruta de acceso del sistema de archivos al archivo que se va a extraer.The path on the file system to the archive that is to be extracted.

destinationDirectoryName
String String String String

La ruta de acceso al directorio de destino en el sistema de archivos.The path to the destination directory on the file system. No debe existir el directorio especificado, pero debe existir el directorio que se encuentra en.The directory specified must not exist, but the directory that it is contained in must exist.

overwriteFiles
Boolean Boolean Boolean Boolean

true para sobrescribir los archivos; false en caso contrario.true to overwrite files; false otherwise.

Excepciones

sourceArchiveFileName o destinationDirectoryName es una cadena de longitud cero, contiene solo espacios en blanco o contiene uno o varios caracteres no válidos, tal como se define por InvalidPathChars.sourceArchiveFileName or destinationDirectoryName is a zero-length string, contains only whitespace, or contains one or more invalid characters as defined by InvalidPathChars.

sourceArchiveFileName o destinationDirectoryName es null.sourceArchiveFileName or destinationDirectoryName is null.

sourceArchiveFileName o destinationDirectoryName especifica una ruta de acceso, un nombre de archivo o ambos que superan la longitud máxima definida por el sistema.sourceArchiveFileName or destinationDirectoryName specifies a path, a file name, or both that exceed the system-defined maximum length.

La ruta de acceso especificada por sourceArchiveFileName o destinationDirectoryName no es válido (por ejemplo, se encuentra en una unidad no asignada).The path specified by sourceArchiveFileName or destinationDirectoryName is invalid (for example, it is on an unmapped drive).

Ya existe un directorio especificado por destinationDirectoryName.The directory specified by destinationDirectoryName already exists.

-o bien--or-

Error de E/S.An I/O error has occurred.

-o bien--or-

El nombre de un ZipArchiveEntry es de longitud cero, contiene solo espacios en blanco o contiene uno o varios caracteres no válidos, tal como se define por InvalidPathChars.The name of a ZipArchiveEntry is zero-length, contains only whitespace, or contains one or more invalid characters as defined by InvalidPathChars.

-o bien--or-

Extraer un ZipArchiveEntry daría lugar a un destino de archivo que está fuera del directorio de destino (por ejemplo, debido a los descriptores de acceso de directorio principal).Extracting a ZipArchiveEntry would result in a file destination that is outside the destination directory (for example, because of parent directory accessors).

-o bien--or-

Un ZipArchiveEntry tiene el mismo nombre que una entrada ya extraído del mismo archivo.A ZipArchiveEntry has the same name as an already extracted entry from the same archive.

El llamador no dispone del permiso requerido.The caller does not have the required permission.

sourceArchiveFileName o destinationDirectoryName está en un formato no válido.sourceArchiveFileName or destinationDirectoryName is in an invalid format.

No se encontró sourceArchiveFileName.sourceArchiveFileName was not found.

El archivo especificado por sourceArchiveFileName no es válido ZipArchive.The archive specified by sourceArchiveFileName is not a valid ZipArchive.

-o bien--or-

Un ZipArchiveEntry no se encontró o está dañado.A ZipArchiveEntry was not found or was corrupt.

-o bien--or-

Un ZipArchiveEntry se comprimió mediante un método de compresión que no es compatible.A ZipArchiveEntry has been compressed using a compression method that is not supported.

Comentarios

No debe existir el directorio especificado.The specified directory must not exist. El método crea el directorio especificado y todos los subdirectorios.The method creates the specified directory and all subdirectories.

Si se produce un error al extraer el archivo, el archivo permanecerá parcialmente extraído.If there is an error while extracting the archive, the archive will remain partially extracted.

Cada entrada se extraerán de forma que el archivo extraído tiene la misma ruta de acceso relativa del destinationDirectoryName cuando tenga la entrada al archivo.Each entry will be extracted such that the extracted file has the same relative path to the destinationDirectoryName as the entry has to the archive.

La ruta de acceso puede especificar información de ruta de acceso relativa o absoluta.The path can specify relative or absolute path information. Una ruta de acceso relativa se interpreta en relación con el directorio de trabajo actual.A relative path is interpreted as relative to the current working directory.

Si un archivo se archiven tiene no es válido por última hora de modificación, la fecha y hora que se puede representar en el formato de marca de tiempo de Zip (medianoche del 1 de enero de 1980) se usará.If a file to be archived has an invalid last modified time, the first date and time representable in the Zip timestamp format (midnight on January 1, 1980) will be used.

ExtractToDirectory(String, String, Encoding) ExtractToDirectory(String, String, Encoding) ExtractToDirectory(String, String, Encoding) 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.Extracts all the files in the specified zip archive to a directory on the file system and uses the specified character encoding for entry names.

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);
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 String String String

La ruta de acceso al archivo que se va a extraer.The path to the archive that is to be extracted.

destinationDirectoryName
String String String 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.The path to the directory in which to place the extracted files, specified as a relative or absolute path. Una ruta de acceso relativa se interpreta en relación con el directorio de trabajo actual.A relative path is interpreted as relative to the current working directory.

entryNameEncoding
Encoding Encoding Encoding Encoding

Codificación que se va a usar al leer o escribir nombres de entrada en este archivo.The encoding to use when reading or writing entry names in this archive. 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.Specify a value for this parameter only when an encoding is required for interoperability with zip archive tools and libraries that do not support UTF-8 encoding for entry names.

Excepciones

destinationDirectoryName o sourceArchiveFileName es Empty, contiene solo espacios en blanco o contiene al menos un carácter no válido.destinationDirectoryName or sourceArchiveFileName is Empty, contains only white space, or contains at least one invalid character.

-o bien--or- entryNameEncoding se establece en Unicode codificación distintos de UTF-8.entryNameEncoding is set to a Unicode encoding other than UTF-8.

destinationDirectoryName o sourceArchiveFileName es null.destinationDirectoryName or sourceArchiveFileName is null.

La ruta de acceso especificada en destinationDirectoryName o sourceArchiveFileName supera la longitud máxima definida por el sistema.The specified path in destinationDirectoryName or sourceArchiveFileName exceeds the system-defined maximum length.

La ruta de acceso especificada no es válida (por ejemplo, está en una unidad no asignada).The specified path is invalid (for example, it is on an unmapped drive).

Ya existe un directorio especificado por destinationDirectoryName.The directory specified by destinationDirectoryName already exists.

-o bien--or- El nombre de una entrada del archivo es Empty, contiene solo espacios en blanco o contiene al menos un carácter no válido.The name of an entry in the archive is Empty, contains only white space, or contains at least one invalid character.

-o bien--or- Extraer una entrada del archivo crearía un archivo que está fuera del directorio especificado por destinationDirectoryName.Extracting an archive entry would create a file that is outside the directory specified by destinationDirectoryName. (Por ejemplo, estos podría suceder si el nombre de la entrada contiene descriptores de acceso del directorio principal).(For example, this might happen if the entry name contains parent directory accessors.) -o bien--or- Para extraer una entrada del archivo tiene el mismo nombre que una entrada que ya se ha extraído del mismo archivo.An archive entry to extract has the same name as an entry that has already been extracted from the same archive.

El llamador no tiene el permiso necesario para tener acceso al archivo o el directorio de destino.The caller does not have the required permission to access the archive or the destination directory.

destinationDirectoryName o sourceArchiveFileName contiene un formato no válido.destinationDirectoryName or sourceArchiveFileName contains an invalid format.

No se encontró sourceArchiveFileName.sourceArchiveFileName was not found.

El archivo especificado por sourceArchiveFileName no es un archivo zip válido.The archive specified by sourceArchiveFileName is not a valid zip archive.

-o bien--or- Una entrada de archivo no se encontró o está dañada.An archive entry was not found or was corrupt.

-o bien--or- Una entrada de archivo se comprimió mediante un método de compresión que no se admite.An archive entry was compressed by using a compression method that is not supported.

Comentarios

Este método crea el directorio especificado y todos los subdirectorios.This method creates the specified directory and all subdirectories. El directorio de destino no puede existir ya.The destination directory cannot already exist. Las excepciones relacionadas con validación de las rutas de acceso en el destinationDirectoryName o sourceArchiveFileName parámetros que se producen antes de la extracción.Exceptions related to validating the paths in the destinationDirectoryName or sourceArchiveFileName parameters are thrown before extraction. En caso contrario, si se produce un error durante la extracción, el archivo permanece parcialmente extraído.Otherwise, if an error occurs during extraction, the archive remains partially extracted. Cada archivo extraído tiene la misma ruta de acceso relativa al directorio especificado por destinationDirectoryName como origen de entrada tiene a la raíz del archivo.Each extracted file has the same relative path to the directory specified by destinationDirectoryName as its source entry has to the root of the archive.

Si entryNameEncoding se establece en un valor distinto null, descodificación de nombres de entrada según las reglas siguientes:If entryNameEncoding is set to a value other than null, entry names are decoded according to the following rules:

  • Para los nombres de entrada donde no se establece el lenguaje de codificación de marca (en el indicador de uso general de bits del encabezado del archivo local), los nombres de entrada se descodifican mediante la codificación especificada.For entry names where the language encoding flag (in the general-purpose bit flag of the local file header) is not set, the entry names are decoded by using the specified encoding.

  • Para las entradas donde se establece la marca de codificación de idioma, los nombres de entrada se descodifican mediante UTF-8.For entries where the language encoding flag is set, the entry names are decoded by using UTF-8.

Si entryNameEncoding está establecido en null, descodificación de nombres de entrada según las reglas siguientes:If entryNameEncoding is set to null, entry names are decoded according to the following rules:

  • Para las entradas que no se establece el lenguaje de codificación de marca (en el indicador de uso general de bits del encabezado del archivo local), los nombres de entrada se descodifican mediante el uso de la página de códigos predeterminada actual.For entries where the language encoding flag (in the general-purpose bit flag of the local file header) is not set, entry names are decoded by using the current system default code page.

  • Para las entradas donde se establece la marca de codificación de idioma, los nombres de entrada se descodifican mediante UTF-8.For entries where the language encoding flag is set, the entry names are decoded by using UTF-8.

ExtractToDirectory(String, String, Encoding, Boolean) ExtractToDirectory(String, String, Encoding, Boolean) ExtractToDirectory(String, String, Encoding, Boolean) ExtractToDirectory(String, String, Encoding, Boolean)

Extrae todos los archivos en el archivo especificado en un directorio en el sistema de archivos.Extracts all of the files in the specified archive to a directory on the file system.

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);
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 String String String

La ruta de acceso del sistema de archivos al archivo que se va a extraer.The path on the file system to the archive that is to be extracted.

destinationDirectoryName
String String String String

La ruta de acceso al directorio de destino en el sistema de archivos.The path to the destination directory on the file system. No debe existir el directorio especificado, pero debe existir el directorio que se encuentra en.The directory specified must not exist, but the directory that it is contained in must exist.

entryNameEncoding
Encoding Encoding Encoding Encoding

La codificación que se utilizará al leer nombres de entrada en este ZipArchive.The encoding to use when reading entry names in this ZipArchive.

overwriteFiles
Boolean Boolean Boolean Boolean

true para sobrescribir los archivos; false en caso contrario.true to overwrite files; false otherwise.

Excepciones

sourceArchiveFileName o destinationDirectoryName es una cadena de longitud cero, contiene solo espacios en blanco o contiene uno o varios caracteres no válidos, tal como se define por InvalidPathChars.sourceArchiveFileName or destinationDirectoryName is a zero-length string, contains only whitespace, or contains one or more invalid characters as defined by InvalidPathChars.

-o bien--or- entryNameEncoding se establece en Unicode codificación distintos de UTF-8.entryNameEncoding is set to a Unicode encoding other than UTF-8.

sourceArchiveFileName o destinationDirectoryName es null.sourceArchiveFileName or destinationDirectoryName is null.

sourceArchiveFileName o destinationDirectoryName especifica una ruta de acceso, un nombre de archivo o ambos que superan la longitud máxima definida por el sistema.sourceArchiveFileName or destinationDirectoryName specifies a path, a file name, or both that exceed the system-defined maximum length.

La ruta de acceso especificada por sourceArchiveFileName o destinationDirectoryName no es válido (por ejemplo, se encuentra en una unidad no asignada).The path specified by sourceArchiveFileName or destinationDirectoryName is invalid (for example, it is on an unmapped drive).

Ya existe un directorio especificado por destinationDirectoryName.The directory specified by destinationDirectoryName already exists.

-o bien--or-

Error de E/S.An I/O error has occurred.

-o bien--or-

El nombre de un ZipArchiveEntry es de longitud cero, contiene solo espacios en blanco o contiene uno o varios caracteres no válidos, tal como se define por InvalidPathChars.The name of a ZipArchiveEntry is zero-length, contains only whitespace, or contains one or more invalid characters as defined by InvalidPathChars.

-o bien--or-

Extraer un ZipArchiveEntry daría lugar a un destino de archivo que está fuera del directorio de destino (por ejemplo, debido a los descriptores de acceso de directorio principal).Extracting a ZipArchiveEntry would result in a file destination that is outside the destination directory (for example, because of parent directory accessors).

-o bien--or-

Un ZipArchiveEntry tiene el mismo nombre que una entrada ya extraído del mismo archivo.A ZipArchiveEntry has the same name as an already extracted entry from the same archive.

El llamador no dispone del permiso requerido.The caller does not have the required permission.

sourceArchiveFileName o destinationDirectoryName está en un formato no válido.sourceArchiveFileName or destinationDirectoryName is in an invalid format.

No se encontró sourceArchiveFileName.sourceArchiveFileName was not found.

El archivo especificado por sourceArchiveFileName no es válido ZipArchive.The archive specified by sourceArchiveFileName is not a valid ZipArchive.

-o bien--or-

Una entrada de archivo no se encontró o está dañada.An archive entry was not found or was corrupt.

-o bien--or-

Una entrada de archivo se comprimió mediante un método de compresión que no es compatible.An archive entry has been compressed using a compression method that is not supported.

Comentarios

No debe existir el directorio especificado.The specified directory must not exist. Este método creará el directorio especificado y todos los subdirectorios.This method will create the specified directory and all subdirectories.

Si se produce un error al extraer el archivo, el archivo permanecerá parcialmente extraído.If there is an error while extracting the archive, the archive will remain partially extracted.

Cada entrada se extraerán de forma que el archivo extraído tiene la misma ruta de acceso relativa del destinationDirectoryName cuando tenga la entrada al archivo.Each entry will be extracted such that the extracted file has the same relative path to the destinationDirectoryName as the entry has to the archive.

La ruta de acceso puede especificar información de ruta de acceso relativa o absoluta.The path can specify relative or absolute path information. Una ruta de acceso relativa se interpreta en relación con el directorio de trabajo actual.A relative path is interpreted as relative to the current working directory.

Si un archivo se archiven tiene no es válido por última hora de modificación, la fecha y hora que se puede representar en el formato de marca de tiempo de Zip (medianoche del 1 de enero de 1980) se usará.If a file to be archived has an invalid last modified time, the first date and time representable in the Zip timestamp format (midnight on January 1, 1980) will be used.

Se aplica a