ZipFileExtensions.ExtractToDirectory 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í.
Extrae todos los archivos del archivo en un directorio del sistema de archivos.
Sobrecargas
| Nombre | Description |
|---|---|
| ExtractToDirectory(ZipArchive, String, ZipExtractionOptions) | |
| ExtractToDirectory(ZipArchive, String, Boolean) |
Extrae todos los archivos del archivo en un directorio del sistema de archivos. |
| ExtractToDirectory(ZipArchive, String) |
Extrae todos los archivos del archivo ZIP en un directorio del sistema de archivos. |
ExtractToDirectory(ZipArchive, String, ZipExtractionOptions)
public:
[System::Runtime::CompilerServices::Extension]
static void ExtractToDirectory(System::IO::Compression::ZipArchive ^ source, System::String ^ destinationDirectoryName, System::IO::Compression::ZipExtractionOptions ^ options);
public static void ExtractToDirectory(this System.IO.Compression.ZipArchive source, string destinationDirectoryName, System.IO.Compression.ZipExtractionOptions options);
static member ExtractToDirectory : System.IO.Compression.ZipArchive * string * System.IO.Compression.ZipExtractionOptions -> unit
<Extension()>
Public Sub ExtractToDirectory (source As ZipArchive, destinationDirectoryName As String, options As ZipExtractionOptions)
Parámetros
- source
- ZipArchive
- destinationDirectoryName
- String
Ruta de acceso al directorio en el que se van a colocar los archivos extraídos. El directorio ya puede existir. Los directorios que faltan se crean según sea necesario al extraer entradas.
- options
- ZipExtractionOptions
Comentarios
Warning
Este método no se debe usar para extraer archivos que no son de confianza. No aplica ningún límite de tamaño, límites de recuento de entradas u otras directivas necesarias para la extracción segura de archivos que no son de confianza. Para obtener más información sobre cómo extraer archivos de forma segura de orígenes que no son de confianza, consulte Procedimientos recomendados para usar archivos zip y tar.
El directorio especificado por destinationDirectoryName ya puede existir. Este método crea el directorio de destino, sus directorios primarios que faltan y subdirectorios según sea necesario al extraer entradas. Si el archivo está vacío, este método no crea el directorio de destino.
Cada archivo extraído tiene la misma ruta de acceso relativa a destinationDirectoryName la que tiene su entrada de origen en la raíz del archivo.
El destinationDirectoryName parámetro acepta rutas de acceso relativas y absolutas. Una ruta de acceso relativa se interpreta como relativa al directorio de trabajo actual.
Si se produce un error durante la extracción, el archivo permanece parcialmente extraído.
Establézcalo OverwriteFiles en true para sobrescribir los archivos existentes. El valor predeterminado es false, lo que hace que la extracción produzca un IOException si ya existe un archivo.
Use Password para proporcionar la contraseña de las entradas cifradas.
EntryNameEncoding esta sobrecarga no la usa. Los nombres de entrada y los comentarios se descodifican mediante la codificación especificada cuando se abre el source archivo.
Los vínculos simbólicos del archivo no se vuelven a crear como vínculos simbólicos. Si destinationDirectoryName o cualquiera de sus directorios primarios es una unión preexistente o un vínculo simbólico, el vínculo se sigue y la extracción escribe en la carpeta de destino final.
Se aplica a
ExtractToDirectory(ZipArchive, String, Boolean)
Extrae todos los archivos del archivo en un directorio del sistema de archivos.
public:
[System::Runtime::CompilerServices::Extension]
static void ExtractToDirectory(System::IO::Compression::ZipArchive ^ source, System::String ^ destinationDirectoryName, bool overwriteFiles);
public static void ExtractToDirectory(this System.IO.Compression.ZipArchive source, string destinationDirectoryName, bool overwriteFiles);
static member ExtractToDirectory : System.IO.Compression.ZipArchive * string * bool -> unit
<Extension()>
Public Sub ExtractToDirectory (source As ZipArchive, destinationDirectoryName As String, overwriteFiles As Boolean)
Parámetros
- source
- ZipArchive
que ZipArchive se va a extraer.
- destinationDirectoryName
- String
Ruta de acceso al directorio de destino del sistema de archivos. La ruta de acceso puede ser relativa o absoluta. Una ruta de acceso relativa se interpreta como relativa al directorio de trabajo actual. El directorio ya puede existir. Los directorios que faltan se crean según sea necesario al extraer entradas.
- overwriteFiles
- Boolean
true para sobrescribir los archivos existentes; false de lo contrario.
Excepciones
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 en InvalidPathChars.
destinationDirectoryName es null.
La ruta de acceso especificada, el nombre de archivo o ambos superan 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 es ZipArchiveEntry de longitud cero, contiene solo espacios en blanco o contiene uno o varios caracteres no válidos, tal como se define en InvalidPathChars.
O bien
La extracción de un ZipArchiveEntry elemento habría dado lugar a un archivo de destino que está fuera destinationDirectoryName (por ejemplo, si el nombre de entrada contiene descriptores de acceso de directorio primarios).
O bien
Un ZipArchiveEntry tiene el mismo nombre que una entrada ya extraída del mismo archivo.
El autor de la llamada no tiene el permiso necesario.
destinationDirectoryName tiene un formato no válido.
No ZipArchiveEntry se encontró o estaba dañado.
O bien
Se ZipArchiveEntry ha comprimido mediante un método de compresión que no se admite.
Comentarios
Warning
Este método no se debe usar para extraer archivos que no son de confianza. No aplica ningún límite de tamaño, límites de recuento de entradas u otras directivas necesarias para la extracción segura de archivos que no son de confianza. Para obtener más información sobre cómo extraer archivos de forma segura de orígenes que no son de confianza, consulte Procedimientos recomendados para usar archivos zip y tar.
El directorio especificado por destinationDirectoryName ya puede existir. Este método crea el directorio de destino, sus directorios primarios que faltan y subdirectorios según sea necesario al extraer entradas. Si el archivo está vacío, este método no crea el directorio de destino.
Si se produce un error al extraer el archivo, el archivo permanecerá parcialmente extraído.
Cada entrada se extrae de forma que el archivo extraído tenga la misma ruta de acceso relativa a destinationDirectoryName la que la entrada tiene en la raíz del archivo.
Si un archivo que se va a archivar tiene una hora de última modificación no válida, se usa 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(ZipArchive, String)
Extrae todos los archivos del archivo ZIP en un directorio del sistema de archivos.
public:
[System::Runtime::CompilerServices::Extension]
static void ExtractToDirectory(System::IO::Compression::ZipArchive ^ source, System::String ^ destinationDirectoryName);
public static void ExtractToDirectory(this System.IO.Compression.ZipArchive source, string destinationDirectoryName);
static member ExtractToDirectory : System.IO.Compression.ZipArchive * string -> unit
<Extension()>
Public Sub ExtractToDirectory (source As ZipArchive, destinationDirectoryName As String)
Parámetros
- source
- ZipArchive
Archivo ZIP del que se extraerán los archivos.
- destinationDirectoryName
- String
Ruta de acceso al directorio en el que se colocarán los archivos extraídos. Puede especificar una ruta de acceso relativa o absoluta. Una ruta de acceso relativa se interpreta como relativa al directorio de trabajo actual. El directorio ya puede existir. Los directorios que faltan se crean según sea necesario al extraer entradas.
Excepciones
destinationDirectoryName es Empty, contiene solo espacio en blanco o contiene al menos un carácter no válido.
destinationDirectoryName es null.
La ruta de acceso especificada 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 del archivo es Empty, solo contiene espacios en blanco o contiene al menos un carácter no válido.
O bien
Al extraer una entrada del archivo, se crea un archivo que está fuera del directorio especificado por destinationDirectoryName. (Por ejemplo, esto puede ocurrir si el nombre de entrada contiene descriptores de acceso de directorio primarios).
O bien
Dos o más entradas del archivo tienen el mismo nombre.
El autor de la llamada no tiene el permiso necesario para escribir en el directorio de destino.
destinationDirectoryName contiene un formato no válido.
No se encuentra una entrada de archivo o está dañada.
O bien
Una entrada de archivo se comprimió mediante un método de compresión que no se admite.
Ejemplos
En el ejemplo siguiente se muestra cómo crear una nueva entrada en un archivo ZIP a partir de un archivo existente y extraer el archivo en un directorio nuevo.
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);
}
}
}
}
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
Warning
Este método no se debe usar para extraer archivos que no son de confianza. No aplica ningún límite de tamaño, límites de recuento de entradas u otras directivas necesarias para la extracción segura de archivos que no son de confianza. Para obtener más información sobre cómo extraer archivos de forma segura de orígenes que no son de confianza, consulte Procedimientos recomendados para usar archivos zip y tar.
El directorio especificado por destinationDirectoryName ya puede existir. Este método crea el directorio de destino, sus directorios primarios que faltan y subdirectorios según sea necesario al extraer entradas. Si el archivo está vacío, este método no crea el directorio de destino.
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 que su entrada de origen tiene en la raíz del archivo.