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í.
Sobrecargas
ExtractToDirectory(ZipArchive, String) |
Extrae todos los archivos del archivo ZIP en un directorio del sistema de archivos. |
ExtractToDirectory(ZipArchive, String, Boolean) |
Extrae todos los archivos del archivo a un directorio del sistema de archivos. |
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 van a extraer los archivos.
- destinationDirectoryName
- String
Ruta de acceso al directorio donde se van a colocar los archivos extraídos. Puede especificar una ruta de acceso relativa o absoluta. Una ruta de acceso relativa se interpreta en relación con el directorio de trabajo actual.
Excepciones
El valor de destinationDirectoryName
es Empty, contiene solo espacios 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 en el archivo es Empty, contiene solo espacios en blanco, o contiene al menos un carácter no válido.
O bien
Al extraer una entrada del archivo se crearía un archivo 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
Dos o más entradas del archivo tienen el mismo nombre.
El autor de la llamada no tiene el permiso requerido para llevar a cabo esta operación.
destinationDirectoryName
contiene un formato no válido.
Una entrada del archivo no se encuentra 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
Este método crea el directorio especificado por destinationDirectoryName
. El método también crea subdirectorios que reflejan la jerarquía en el archivo ZIP. 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.
Se aplica a
ExtractToDirectory(ZipArchive, String, Boolean)
Extrae todos los archivos del archivo a 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
ZipArchive que se extraerá.
- destinationDirectoryName
- String
La ruta de acceso al directorio de destino en el sistema de archivos. La ruta de acceso puede ser relativa o absoluta. Una ruta de acceso relativa se interpreta en relación con el directorio de trabajo actual.
- overwriteFiles
- Boolean
true
para sobrescribir los archivos existentes; false
Lo contrario.
Excepciones
destinationArchiveFileName
es una cadena de longitud cero, solo contiene espacios en blanco, o bien uno o varios caracteres no válidos que ha definido el elemento InvalidPathChars.
destinationArchiveFileName
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 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 ZipArchiveEntry habría dado lugar a un archivo de destino que se encontraría fuera de destinationArchiveFileName
(por ejemplo, si el nombre de la entrada incluyera descriptores de acceso del directorio principal).
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.
destinationArchiveFileName
está en un formato no válido.
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
Es posible que el directorio especificado ya exista. Este método crea el directorio especificado y todos los subdirectorios si es necesario.
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).