ZipFileExtensions.ExtractToDirectory Método

Definição

Sobrecargas

Name Description
ExtractToDirectory(ZipArchive, String)

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

ExtractToDirectory(ZipArchive, String, Boolean)

Extrai todos os ficheiros do arquivo para um diretório no sistema de ficheiros.

ExtractToDirectory(ZipArchive, String)

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

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 para extrair ficheiros.

destinationDirectoryName
String

O caminho para o diretório onde se colocam os ficheiros extraídos. Pode especificar um caminho relativo ou um caminho absoluto. Um caminho relativo é interpretado como relativo ao diretório de trabalho atual.

Exceções

destinationDirectoryName é Empty, contém apenas espaço em branco, ou contém pelo menos um carácter inválido.

destinationDirectoryName é null.

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

O caminho especificado é inválido (por exemplo, está num disco não mapeado).

O nome de uma entrada no arquivo é Empty, contém apenas espaço em branco, ou contém pelo menos um carácter inválido.

-ou-

Extrair uma entrada do arquivo criaria um ficheiro fora do diretório especificado por destinationDirectoryName. (Por exemplo, isto pode acontecer se o nome da entrada contiver acessórios de diretório pai.)

-ou-

Duas ou mais entradas no arquivo têm o mesmo nome.

O chamador não tem a permissão necessária para escrever no 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 foi comprimida usando um método de compressão que não é suportado.

Exemplos

O exemplo seguinte mostra como criar uma nova entrada num arquivo zip a partir de um ficheiro 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

Observações

Este 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 permanece parcialmente extraído. Cada ficheiro extraído tem o mesmo caminho relativo para o diretório especificado por destinationDirectoryName que a sua entrada de origem tem para a raiz do arquivo.

Aplica-se a

ExtractToDirectory(ZipArchive, String, Boolean)

Extrai todos os ficheiros do arquivo para um diretório no sistema de ficheiros.

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 para extrair.

destinationDirectoryName
String

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

overwriteFiles
Boolean

true sobrescrever ficheiros existentes; false caso contrário.

Exceções

destinationDirectoryName é uma cadeia de comprimento zero, contém apenas espaços em branco, ou contém um ou mais caracteres inválidos conforme definido por InvalidPathChars.

destinationDirectoryName é null.

O caminho especificado, nome do ficheiro ou ambos excedem o comprimento máximo definido pelo sistema.

O caminho especificado é inválido (por exemplo, está num disco não mapeado).

O nome de um ZipArchiveEntry é de comprimento zero, contém apenas espaços em branco, ou contém um ou mais caracteres inválidos conforme definido por InvalidPathChars.

-ou-

Extrair um ZipArchiveEntry teria resultado num ficheiro de destino que está fora destinationDirectoryName (por exemplo, se o nome da entrada contiver acessórios de diretório pai).

-ou-

A ZipArchiveEntry tem o mesmo nome que uma entrada já extraída do mesmo arquivo.

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

destinationDirectoryName está num formato inválido.

A ZipArchiveEntry não foi encontrada ou estava corrompida.

-ou-

A ZipArchiveEntry foi comprimido usando um método de compressão que não é suportado.

Observações

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

Se houver um erro durante a extração do arquivo, este permanecerá parcialmente extraído.

Cada entrada é extraída de modo que o ficheiro extraído tenha o mesmo caminho relativo a destinationDirectoryName que a entrada tem até à raiz do arquivo.

Se um ficheiro a ser arquivado tiver uma última hora modificada inválida, utiliza-se a primeira data e hora representáveis no formato Zip timestamp (meia-noite de 1 de janeiro de 1980).

Aplica-se a