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.
Extrai todos os arquivos no arquivo morto para um diretório no sistema de arquivos.
Sobrecargas
| Nome | Description |
|---|---|
| ExtractToDirectory(ZipArchive, String, ZipExtractionOptions) | |
| 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. |
ExtractToDirectory(ZipArchive, String, ZipExtractionOptions)
public:
[System::Runtime::CompilerServices::Extension]
static void ExtractToDirectory(System::IO::Compression::ZipArchive ^ source, System::String ^ destinationDirectoryName, System::IO::Compression::ZipExtractionOptions ^ options);
public static void ExtractToDirectory(this System.IO.Compression.ZipArchive source, string destinationDirectoryName, System.IO.Compression.ZipExtractionOptions options);
static member ExtractToDirectory : System.IO.Compression.ZipArchive * string * System.IO.Compression.ZipExtractionOptions -> unit
<Extension()>
Public Sub ExtractToDirectory (source As ZipArchive, destinationDirectoryName As String, options As ZipExtractionOptions)
Parâmetros
- source
- ZipArchive
- destinationDirectoryName
- String
O caminho para o diretório no qual colocar os arquivos extraídos. O diretório já pode existir. Os diretórios ausentes são criados conforme necessário ao extrair entradas.
- options
- ZipExtractionOptions
Comentários
Warning
Esse método não deve ser usado para extrair arquivos não confiáveis. Ele não impõe limites de tamanho, limites de contagem de entradas ou outras políticas necessárias para extração segura de arquivos não confiáveis. Para obter mais informações sobre como extrair arquivos com segurança de fontes não confiáveis, consulte As práticas recomendadas para usar arquivos zip e tar.
O diretório especificado por destinationDirectoryName ele já pode existir. Esse método cria o diretório de destino, seus diretórios pai ausentes e subdiretórios conforme necessário ao extrair entradas. Se o arquivo estiver vazio, esse método não criará o diretório de destino.
Cada arquivo extraído tem o mesmo caminho relativo para destinationDirectoryName o qual sua entrada de origem tem para a raiz do arquivo morto.
O destinationDirectoryName parâmetro aceita caminhos relativos e absolutos. Um caminho relativo é interpretado como relativo ao diretório de trabalho atual.
Se ocorrer um erro durante a extração, o arquivo morto permanecerá parcialmente extraído.
Definido OverwriteFiles para true substituir arquivos existentes. O padrão é false, o que faz com que a extração gere um IOException arquivo se já existir um arquivo a ser extraído.
Use Password para fornecer a senha para entradas criptografadas.
EntryNameEncoding não é usado por essa sobrecarga. Os nomes de entrada e os comentários são decodificados usando a codificação especificada quando o source arquivo é aberto.
Links simbólicos no arquivo morto não são recriados como links simbólicos. Se destinationDirectoryName ou qualquer um de seus diretórios pai for uma junção pré-existente ou um link simbólico, o link será seguido e a extração será gravada na pasta de destino final.
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. O diretório já pode existir. Os diretórios ausentes são criados conforme necessário ao extrair entradas.
- 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
Warning
Esse método não deve ser usado para extrair arquivos não confiáveis. Ele não impõe limites de tamanho, limites de contagem de entradas ou outras políticas necessárias para extração segura de arquivos não confiáveis. Para obter mais informações sobre como extrair arquivos com segurança de fontes não confiáveis, consulte As práticas recomendadas para usar arquivos zip e tar.
O diretório especificado por destinationDirectoryName ele já pode existir. Esse método cria o diretório de destino, seus diretórios pai ausentes e subdiretórios conforme necessário ao extrair entradas. Se o arquivo estiver vazio, esse método não criará o diretório de destino.
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
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. O diretório já pode existir. Os diretórios ausentes são criados conforme necessário ao extrair entradas.
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
Warning
Esse método não deve ser usado para extrair arquivos não confiáveis. Ele não impõe limites de tamanho, limites de contagem de entradas ou outras políticas necessárias para extração segura de arquivos não confiáveis. Para obter mais informações sobre como extrair arquivos com segurança de fontes não confiáveis, consulte As práticas recomendadas para usar arquivos zip e tar.
O diretório especificado por destinationDirectoryName ele já pode existir. Esse método cria o diretório de destino, seus diretórios pai ausentes e subdiretórios conforme necessário ao extrair entradas. Se o arquivo estiver vazio, esse método não criará o diretório de destino.
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.