ZipFileExtensions.ExtractToDirectory Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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).