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

Definición

Extrae todos los archivos del archivo zip especificado a 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 a 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)
ExtractToDirectory(String, String, Encoding) ExtractToDirectory(String, String, Encoding) ExtractToDirectory(String, String, Encoding) ExtractToDirectory(String, String, Encoding)

Extrae todos los archivos de archivo zip especificado a 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)

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

Extrae todos los archivos del archivo zip especificado a 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 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).

El directorio que especifica destinationDirectoryName ya existe.The directory specified by destinationDirectoryName already exists.

O bien-or- 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.The name of an entry in the archive is Empty, contains only white space, or contains at least one invalid character.

O bien-or- La extracción de 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, esto puede ocurrir si el nombre de la entrada contiene descriptores de acceso del directorio primario).(For example, this might happen if the entry name contains parent directory accessors.) O bien-or- Una entrada de archivo que extraer tiene el mismo nombre que una entrada que ya ha sido extraída 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 se dañó.An archive entry was not found or was corrupt.

O bien-or- Una entrada de archivo se ha comprimido 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)

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
destinationDirectoryName
String String String String
overwriteFiles
Boolean Boolean Boolean Boolean

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

Extrae todos los archivos de archivo zip especificado a 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 una codificación Unicode distinta 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 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).

El directorio que especifica destinationDirectoryName ya existe.The directory specified by destinationDirectoryName already exists.

O bien-or- 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.The name of an entry in the archive is Empty, contains only white space, or contains at least one invalid character.

O bien-or- La extracción de 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, esto puede ocurrir si el nombre de la entrada contiene descriptores de acceso del directorio primario).(For example, this might happen if the entry name contains parent directory accessors.) O bien-or- Una entrada de archivo que extraer tiene el mismo nombre que una entrada que ya ha sido extraída 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 se dañó.An archive entry was not found or was corrupt.

O bien-or- Una entrada de archivo se ha comprimido 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)

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
destinationDirectoryName
String String String String
entryNameEncoding
Encoding Encoding Encoding Encoding
overwriteFiles
Boolean Boolean Boolean Boolean

Se aplica a