ZipFileExtensions.ExtractToDirectory ZipFileExtensions.ExtractToDirectory ZipFileExtensions.ExtractToDirectory ZipFileExtensions.ExtractToDirectory Method

Definição

Sobrecargas

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

Extrai todos os arquivos no arquivo zip especificado para um diretório do sistema de arquivos.Extracts all the files in the zip archive to a directory on the file system.

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

Extrai todos os arquivos dos arquivos para um diretório do sistema de arquivos.Extracts all of the files in the archive to a directory on the file system.

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

Extrai todos os arquivos no arquivo zip especificado para um diretório do sistema de arquivos.Extracts all the files in the zip archive to a directory on the file system.

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

O arquivo zip de onde extrair os arquivos.The zip archive to extract files from.

destinationDirectoryName
String String String String

O caminho para o diretório para colocar os arquivos extraídos.The path to the directory to place the extracted files in. Você pode especificar um caminho absoluto ou relativo.You can specify either a relative or an absolute path. Um caminho relativo é interpretado como relativo ao diretório de trabalho atual.A relative path is interpreted as relative to the current working directory.

Exceções

destinationDirectoryName é Empty, contém somente espaços em branco ou, pelo menos, um caractere inválido.destinationDirectoryName is Empty, contains only white space, or contains at least one invalid character.

destinationDirectoryName é null.destinationDirectoryName is null.

O caminho especificado excede o tamanho máximo definido pelo sistema.The specified path exceeds the system-defined maximum length.

O caminho especificado é inválido (por exemplo, ele está em uma unidade não mapeada).The specified path is invalid (for example, it is on an unmapped drive).

O diretório especificado por destinationDirectoryName já existe.The directory specified by destinationDirectoryName already exists.

- ou --or- O nome de uma entrada no arquivo morto é Empty, contém somente espaços em branco ou, pelo menos, um caractere inválido.The name of an entry in the archive is Empty, contains only white space, or contains at least one invalid character.

- ou --or- A extração de uma entrada do arquivo criará um arquivo que está fora do diretório especificado por destinationDirectoryName.Extracting an entry from the archive would create a file that is outside the directory specified by destinationDirectoryName. (Por exemplo, isso poderá acontecer se o nome da entrada contiver acessadores de diretório pai.)(For example, this might happen if the entry name contains parent directory accessors.) - ou --or- Duas ou mais entradas no arquivo tem o mesmo nome.Two or more entries in the archive have the same name.

O chamador não tem a permissão necessária para acessar o arquivo ou o diretório de destino.The caller does not have the required permission to write to the destination directory.

destinationDirectoryName contém um formato inválido.destinationDirectoryName contains an invalid format.

Uma entrada de arquivo não pode ser encontrada ou está corrompida.An archive entry cannot be found or is corrupt.

- ou --or- Uma entrada de arquivo morto foi compactada usando um método de compactação sem suporte.An archive entry was compressed by using a compression method that is not supported.

Exemplos

O exemplo a seguir mostra como criar uma nova entrada em um arquivo zip a partir de um arquivos existente e extrair o arquivo para um novo diretório.The following example shows how to create a new entry in a zip archive from an existing file, and extract the archive to a new directory. Para o compilador deste exemplo de código, você deve referenciar System.IO.Compression os System.IO.Compression.FileSystem assemblies e em seu projeto.In order to compiler this code example, you must reference the System.IO.Compression and System.IO.Compression.FileSystem assemblies in your project.

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

Comentários

Esse método cria o diretório especificado por destinationDirectoryName.This method creates the directory specified by destinationDirectoryName. Se o diretório de destino já existir, esse método não o substituirá; Ele gera uma IOException exceção.If the destination directory already exists, this method does not overwrite it; it throws an IOException exception. O método também cria subdiretórios que refletem a hierarquia no arquivo zip.The method also creates subdirectories that reflect the hierarchy in the zip archive. Se ocorrer um erro durante a extração, o arquivo morto permanecerá parcialmente extraído.If an error occurs during extraction, the archive remains partially extracted. Cada arquivo extraído tem o mesmo caminho relativo para o diretório especificado destinationDirectoryName por, pois sua entrada de origem tem a raiz do arquivo morto.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(ZipArchive, String, Boolean) ExtractToDirectory(ZipArchive, String, Boolean) ExtractToDirectory(ZipArchive, String, Boolean) ExtractToDirectory(ZipArchive, String, Boolean)

Extrai todos os arquivos dos arquivos para um diretório do sistema de arquivos.Extracts all of the files in the archive to a directory on the file system.

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

O ZipArchive a ser extraído.The ZipArchive to extract.

destinationDirectoryName
String String String String

O caminho para o diretório de destino no sistema de arquivos.The path to the destination directory on the file system. O caminho pode ser relativo ou absoluto.The path can be relative or absolute. Um caminho relativo é interpretado como relativo ao diretório de trabalho atual.A relative path is interpreted as relative to the current working directory.

overwriteFiles
Boolean Boolean Boolean Boolean

true para indicar que os arquivos existentes devem ser substituídos; caso contrário, false.true to indicate that existing files are to be overwritten; false otherwise.

Exceções

destinationArchiveFileName é uma cadeia de comprimento zero, contém somente espaço em branco ou um ou mais caracteres inválidos, conforme definido por InvalidPathChars.destinationArchiveFileName is a zero-length string, contains only whitespace, or contains one or more invalid characters as defined by InvalidPathChars.

destinationArchiveFileName é null.destinationArchiveFileName is null.

O caminho especificado, o nome de arquivo, ou ambos excedem o tamanho máximo definido pelo sistema.The specified path, file name, or both exceed the system-defined maximum length.

O caminho especificado é inválido (por exemplo, ele está em uma unidade não mapeada).The specified path is invalid, (for example, it is on an unmapped drive).

O nome de uma ZipArchiveEntry é uma cadeia de comprimento zero, contém somente espaço em branco ou contém um ou mais caracteres inválidos, conforme definido por InvalidPathChars.The name of a ZipArchiveEntry is zero-length, contains only whitespace, or contains one or more invalid characters as defined by InvalidPathChars.

- ou --or-

A extração de uma ZipArchiveEntry resulta em um arquivo de destino que está fora de destinationArchiveFileName (por exemplo, se o nome da entrada contém acessadores de diretório pai).Extracting a ZipArchiveEntry would have resulted in a destination file that is outside destinationArchiveFileName (for example, if the entry name contains parent directory accessors).

- ou --or-

Uma ZipArchiveEntry tem o mesmo nome de uma entrada já extraída dos mesmos arquivos.A ZipArchiveEntry has the same name as an already extracted entry from the same archive.

O chamador não tem a permissão necessária.The caller does not have the required permission.

destinationArchiveFileName está em um formato inválido.destinationArchiveFileName is in an invalid format.

Uma ZipArchiveEntry não foi encontrada ou estava corrompida.A ZipArchiveEntry was not found or was corrupt.

- ou --or-

Uma ZipArchiveEntry foi compactada usando um método de compactação sem suporte.A ZipArchiveEntry has been compressed using a compression method that is not supported.

Comentários

O diretório especificado já pode existir.The specified directory may already exist. Esse método criará o diretório especificado e todos os subdiretórios, se necessário.This method will create the specified directory and all subdirectories if necessary.

Se houver um erro ao extrair o arquivo morto, o arquivo permanecerá extraído parcialmente.If there is an error while extracting the archive, the archive will remain partially extracted.

Cada entrada será extraída de modo que o arquivo extraído tenha o mesmo caminho destinationDirectoryName relativo para, pois a entrada tem a raiz do arquivo morto.Each entry will be extracted such that the extracted file has the same relative path to destinationDirectoryName as the entry has to the root of the archive.

Se um arquivo a ser arquivado tiver uma hora da última modificação inválida, a primeira data e hora representáveis no formato de carimbo de hora zip (meia-noite em 1º de janeiro de 1980) serão usadas.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.

Aplica-se a