ZipFileExtensions.ExtractToDirectory Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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)
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)
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.