Partilhar via


ZipFileExtensions.ExtractToDirectory Método

Definição

Sobrecargas

ExtractToDirectory(ZipArchive, String)

Extrai todos os arquivos no arquivo zip especificado para um diretório do sistema de arquivos.

ExtractToDirectory(ZipArchive, String, Boolean)

Extrai todos os arquivos dos arquivos para um diretório do sistema de arquivos.

ExtractToDirectory(ZipArchive, String)

Origem:
ZipFileExtensions.ZipArchive.Extract.cs
Origem:
ZipFileExtensions.ZipArchive.Extract.cs
Origem:
ZipFileExtensions.ZipArchive.Extract.cs

Extrai todos os arquivos no arquivo zip especificado para um diretório do sistema de arquivos.

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

O arquivo zip de onde extrair os arquivos.

destinationDirectoryName
String

O caminho para o diretório para colocar os arquivos extraídos. Você pode especificar um caminho absoluto ou relativo. Um caminho relativo é interpretado como relativo ao diretório de trabalho atual.

Exceções

destinationDirectoryName é Empty, contém somente espaços em branco ou, pelo menos, um caractere inválido.

destinationDirectoryName é null.

O caminho especificado excede o tamanho máximo definido pelo sistema.

O caminho especificado é inválido (por exemplo, ele está em uma unidade não mapeada).

O nome de uma entrada no arquivo morto é Empty, contém somente espaços em branco ou, pelo menos, um caractere inválido.

- ou -

A extração de uma entrada do arquivo criará um arquivo que está fora do diretório especificado por destinationDirectoryName. (Por exemplo, isso poderá acontecer se o nome da entrada contiver acessadores de diretório pai.)

- ou -

Duas ou mais entradas no arquivo tem o mesmo nome.

O chamador não tem a permissão necessária para acessar o arquivo ou o diretório de destino.

destinationDirectoryName contém um formato inválido.

Uma entrada de arquivo não pode ser encontrada ou está corrompida.

- ou -

Uma entrada de arquivo morto foi compactada usando um método de compactação sem suporte.

Exemplos

O exemplo a seguir mostra como criar uma nova entrada em um arquivo zip de um arquivo existente e extrair o arquivo para um novo diretório.

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. O método também cria subdiretórios que refletem a hierarquia no arquivo zip. Se ocorrer um erro durante a extração, o arquivo morto permanecerá parcialmente extraído. Cada arquivo extraído tem o mesmo caminho relativo para o diretório especificado por destinationDirectoryName como sua entrada de origem tem para a raiz do arquivo morto.

Aplica-se a

ExtractToDirectory(ZipArchive, String, Boolean)

Origem:
ZipFileExtensions.ZipArchive.Extract.cs
Origem:
ZipFileExtensions.ZipArchive.Extract.cs
Origem:
ZipFileExtensions.ZipArchive.Extract.cs

Extrai todos os arquivos dos arquivos para um diretório do sistema de arquivos.

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

O ZipArchive a ser extraído.

destinationDirectoryName
String

O caminho para o diretório de destino no sistema de arquivos. O caminho pode ser relativo ou absoluto. Um caminho relativo é interpretado como relativo ao diretório de trabalho atual.

overwriteFiles
Boolean

true para substituir arquivos existentes; false Caso contrário.

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 é null.

O caminho especificado, o nome de arquivo, ou ambos excedem o tamanho máximo definido pelo sistema.

O caminho especificado é inválido (por exemplo, ele está em uma unidade não mapeada).

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.

- ou -

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).

- ou -

Uma ZipArchiveEntry tem o mesmo nome de uma entrada já extraída dos mesmos arquivos.

O chamador não tem a permissão necessária.

destinationArchiveFileName está em um formato inválido.

Uma ZipArchiveEntry não foi encontrada ou estava corrompida.

- ou -

Uma ZipArchiveEntry foi compactada usando um método de compactação sem suporte.

Comentários

O diretório especificado já pode existir. Esse método cria o diretório especificado e todos os subdiretórios, se necessário.

Se houver um erro ao extrair o arquivo morto, o arquivo permanecerá parcialmente extraído.

Cada entrada é extraída de modo que o arquivo extraído tenha o mesmo caminho relativo para destinationDirectoryName que a entrada tenha para a raiz do arquivo morto.

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 data/hora zip (meia-noite de 1º de janeiro de 1980) será usada.

Aplica-se a