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