ZipFileExtensions.ExtractToDirectory Método

Definição

Sobrecargas

Nome Description
ExtractToDirectory(ZipArchive, String)

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

ExtractToDirectory(ZipArchive, String, Boolean)

Extrai todos os arquivos no arquivo morto para um diretório no sistema de arquivos.

ExtractToDirectory(ZipArchive, String)

Extrai todos os arquivos no arquivo zip para um diretório no 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 do qual extrair arquivos.

destinationDirectoryName
String

O caminho para o diretório no qual os arquivos extraídos serão colocados. Você pode especificar um caminho relativo ou 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 caractere inválido.

destinationDirectoryName é null.

O caminho especificado excede o comprimento 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 contém Emptyapenas espaço em branco ou contém pelo menos um caractere inválido.

-ou-

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

-ou-

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

O chamador não tem a permissão necessária para gravar no diretório de destino.

destinationDirectoryName contém um formato inválido.

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

-ou-

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

Exemplos

O exemplo a seguir mostra como criar uma nova entrada em um arquivo zip de um arquivo existente e extrair o arquivo morto 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 pela destinationDirectoryName entrada de origem para a raiz do arquivo morto.

Aplica-se a

ExtractToDirectory(ZipArchive, String, Boolean)

Extrai todos os arquivos no arquivo morto para um diretório no 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 para extrair.

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

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

destinationDirectoryName é null.

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

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

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

-ou-

A extração de um ZipArchiveEntry teria resultado em um arquivo de destino que está fora destinationDirectoryName (por exemplo, se o nome da entrada contiver acessadores de diretório pai).

-ou-

Um ZipArchiveEntry tem o mesmo nome de uma entrada já extraída do mesmo arquivo.

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

destinationDirectoryName está em um formato inválido.

Um ZipArchiveEntry não foi encontrado ou estava corrompido.

-ou-

Um ZipArchiveEntry foi compactado usando um método de compactação que não tem 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 o qual a entrada tem para a raiz do arquivo morto.

Se um arquivo a ser arquivado tiver uma hora de ú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