Idioma

ZipFile.ExtractToDirectory Método

Definição

Extrai todos os ficheiros do arquivo zip especificado para um diretório no sistema de ficheiros.

Sobrecargas

Nome Descrição
ExtractToDirectory(String, String, ZipExtractionOptions)
ExtractToDirectory(String, String, Encoding, Boolean)

Extrai todos os ficheiros do arquivo especificado para um diretório no sistema de ficheiros.

ExtractToDirectory(Stream, String, Encoding, Boolean)

Extrai todos os ficheiros do arquivo zip armazenado no fluxo especificado e coloca-os no diretório de destino especificado no sistema de ficheiros, utiliza a codificação de caracteres especificada para nomes de entrada e comentários, e permite opcionalmente escolher se os ficheiros no diretório de destino devem ser sobrescrevidos.

ExtractToDirectory(String, String, Encoding)

Extrai todos os ficheiros do arquivo zip especificado para um diretório no sistema de ficheiros e utiliza a codificação de caracteres especificada para nomes de entrada e comentários.

ExtractToDirectory(String, String, Boolean)

Extrai todos os ficheiros do arquivo especificado para um diretório no sistema de ficheiros.

ExtractToDirectory(Stream, String, Encoding)

Extrai todos os ficheiros do arquivo zip armazenado no fluxo especificado e coloca-os no diretório de destino especificado no sistema de ficheiros, utilizando a codificação de caracteres especificada para nomes de entradas e comentários.

ExtractToDirectory(Stream, String, ZipExtractionOptions)
ExtractToDirectory(Stream, String, Boolean)

Extrai todos os ficheiros do arquivo zip armazenado no fluxo especificado e coloca-os no diretório de destino especificado no sistema de ficheiros, permitindo opcionalmente escolher se os ficheiros no diretório de destino devem ser sobrescrevidos.

ExtractToDirectory(String, String)

Extrai todos os ficheiros do arquivo zip especificado para um diretório no sistema de ficheiros.

ExtractToDirectory(Stream, String)

Extrai todos os ficheiros do arquivo zip armazenado no fluxo especificado e coloca-os no diretório de destino especificado no sistema de ficheiros.

ExtractToDirectory(String, String, ZipExtractionOptions)

Origem:
ZipFile.Extract.cs
public:
 static void ExtractToDirectory(System::String ^ sourceArchiveFileName, System::String ^ destinationDirectoryName, System::IO::Compression::ZipExtractionOptions ^ options);
public static void ExtractToDirectory(string sourceArchiveFileName, string destinationDirectoryName, System.IO.Compression.ZipExtractionOptions options);
static member ExtractToDirectory : string * string * System.IO.Compression.ZipExtractionOptions -> unit
Public Shared Sub ExtractToDirectory (sourceArchiveFileName As String, destinationDirectoryName As String, options As ZipExtractionOptions)

Parâmetros

sourceArchiveFileName
String
destinationDirectoryName
String

O caminho para o diretório onde colocar os ficheiros extraídos. O diretório já pode existir. Os diretórios em falta são criados conforme necessário ao extrair entradas.

Observações

Warning

Este método não deve ser usado para extrair arquivos não confiáveis. Não aplica quaisquer limites de tamanho, de número de entradas ou outras políticas necessárias para a extração segura de arquivos não confiáveis. Para mais informações sobre como extrair arquivos de fontes não confiáveis em segurança, consulte Melhores práticas para utilização de arquivos zip e tar.

O diretório especificado por destinationDirectoryName pode já existir. Este método cria o diretório de destino, os diretórios pais em falta e subdiretórios conforme necessário ao extrair entradas. Se o arquivo estiver vazio, este método não cria o diretório de destino.

Cada ficheiro extraído tem o mesmo caminho relativo a destinationDirectoryName que a sua entrada de origem tem até à raiz do arquivo.

Os sourceArchiveFileName parâmetros e destinationDirectoryName aceitam 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 permanece parcialmente extraído.

Definir OverwriteFiles para true sobrescrever ficheiros existentes. O padrão é false, o que faz com que a extração lance um IOException se já existe um ficheiro a extrair.

Use Password para fornecer a palavra-passe para entradas encriptadas.

Use EntryNameEncoding para especificar a codificação dos nomes das entradas e comentários ao abrir o arquivo. Para detalhes sobre como esta codificação é utilizada, veja ZipArchive(Stream, ZipArchiveMode, Boolean, Encoding).

Os links simbólicos no arquivo não são recriados como links simbólicos. Se destinationDirectoryName ou qualquer um dos seus diretórios-pai for uma junção ou ligação simbólica pré-existente, a ligação é seguida e a extração escreve na pasta de destino final.

Aplica-se a

ExtractToDirectory(String, String, Encoding, Boolean)

Origem:
ZipFile.Extract.cs
Origem:
ZipFile.Extract.cs
Origem:
ZipFile.Extract.cs
Origem:
ZipFile.Extract.cs
Origem:
ZipFile.Extract.cs

Extrai todos os ficheiros do arquivo especificado para um diretório no sistema de ficheiros.

public:
 static void ExtractToDirectory(System::String ^ sourceArchiveFileName, System::String ^ destinationDirectoryName, System::Text::Encoding ^ entryNameEncoding, bool overwriteFiles);
public static void ExtractToDirectory(string sourceArchiveFileName, string destinationDirectoryName, System.Text.Encoding? entryNameEncoding, bool overwriteFiles);
static member ExtractToDirectory : string * string * System.Text.Encoding * bool -> unit
Public Shared Sub ExtractToDirectory (sourceArchiveFileName As String, destinationDirectoryName As String, entryNameEncoding As Encoding, overwriteFiles As Boolean)

Parâmetros

sourceArchiveFileName
String

O caminho no sistema de ficheiros para o arquivo que deve ser extraído.

destinationDirectoryName
String

O caminho para o diretório de destino no sistema de ficheiros. O diretório já pode existir. Os diretórios em falta são criados conforme necessário ao extrair entradas.

entryNameEncoding
Encoding

A codificação a usar ao ler nomes de entradas e comentários neste ZipArchive.

overwriteFiles
Boolean

true sobrescrever ficheiros; false caso contrário.

Exceções

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

-ou-

entryNameEncoding está definido para uma codificação Unicode diferente da UTF-8.

sourceArchiveFileName ou destinationDirectoryName é null.

sourceArchiveFileName ou destinationDirectoryName especifica um caminho, um nome de ficheiro, ou ambos que excedam o comprimento máximo definido pelo sistema.

O caminho especificado por sourceArchiveFileName ou destinationDirectoryName é inválido (por exemplo, está num disco não mapeado).

overwriteFiles é false e uma entrada de arquivo para extrair tem o mesmo nome que um ficheiro que já existe em destinationDirectoryName.

-ou-

Ocorreu um erro de E/S.

-ou-

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 a ZipArchiveEntry resultaria num destino de ficheiro fora do diretório de destino (por exemplo, devido aos acessores 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.

sourceArchiveFileName ou destinationDirectoryName está num formato inválido.

sourceArchiveFileName não foi encontrado.

O arquivo especificado por sourceArchiveFileName não é válido ZipArchive.

-ou-

Nenhuma entrada de arquivo foi encontrada ou estava corrompida.

-ou-

Uma entrada de arquivo foi comprimida usando um método de compressão que não é suportado.

Observações

Warning

Este método não deve ser usado para extrair arquivos não confiáveis. Não aplica quaisquer limites de tamanho, de número de entradas ou outras políticas necessárias para a extração segura de arquivos não confiáveis. Para mais informações sobre como extrair arquivos de fontes não confiáveis em segurança, consulte Melhores práticas para utilização de arquivos zip e tar.

O diretório especificado por destinationDirectoryName pode já existir. Este método cria o diretório de destino, os diretórios pais em falta e subdiretórios conforme necessário ao extrair entradas. Se o arquivo estiver vazio, este método não cria o diretório de destino.

Se houver um erro durante a extração do arquivo, este permanecerá parcialmente extraído.

Cada entrada será extraída de modo que o ficheiro extraído tenha o mesmo caminho relativo para o destinationDirectoryName que a entrada tem para o arquivo.

Os sourceArchiveFileName parâmetros e destinationDirectoryName aceitam tanto caminhos relativos como absolutos. Um caminho relativo é interpretado como relativo ao diretório de trabalho atual.

Se uma entrada no arquivo postal for um link simbólico, é extraído como uma pasta normal, já que a informação do link simbólico não é preservada no formato ZIP. Se destinationDirectoryName ou qualquer um dos seus diretórios-pais for uma junção ou ligação simbólica pré-existente, a ligação é seguida e a extração escreve na pasta de destino final.

Se um ficheiro a ser arquivado tiver uma última hora modificada inválida, a primeira data e hora representáveis no formato de carimbo postal (meia-noite de 1 de janeiro de 1980) serão usadas.

Aplica-se a

ExtractToDirectory(Stream, String, Encoding, Boolean)

Origem:
ZipFile.Extract.cs
Origem:
ZipFile.Extract.cs
Origem:
ZipFile.Extract.cs
Origem:
ZipFile.Extract.cs

Extrai todos os ficheiros do arquivo zip armazenado no fluxo especificado e coloca-os no diretório de destino especificado no sistema de ficheiros, utiliza a codificação de caracteres especificada para nomes de entrada e comentários, e permite opcionalmente escolher se os ficheiros no diretório de destino devem ser sobrescrevidos.

public:
 static void ExtractToDirectory(System::IO::Stream ^ source, System::String ^ destinationDirectoryName, System::Text::Encoding ^ entryNameEncoding, bool overwriteFiles);
public static void ExtractToDirectory(System.IO.Stream source, string destinationDirectoryName, System.Text.Encoding? entryNameEncoding, bool overwriteFiles);
static member ExtractToDirectory : System.IO.Stream * string * System.Text.Encoding * bool -> unit
Public Shared Sub ExtractToDirectory (source As Stream, destinationDirectoryName As String, entryNameEncoding As Encoding, overwriteFiles As Boolean)

Parâmetros

source
Stream

O fluxo do qual o arquivo zip deve ser extraído.

destinationDirectoryName
String

O caminho para o diretório onde colocar os ficheiros extraídos, especificado como 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 em falta são criados conforme necessário ao extrair entradas.

entryNameEncoding
Encoding

A codificação a usar ao ler ou escrever nomes de entradas e comentários neste arquivo. Especifique um valor para este parâmetro apenas quando for necessária uma codificação para interoperabilidade com ferramentas de arquivo zip e bibliotecas que não suportem codificação UTF-8 para nomes de entradas ou comentários.

overwriteFiles
Boolean

true sobrescrever ficheiros; false caso contrário.

Exceções

destinationDirectoryName é Empty, contém apenas espaço em branco, ou contém pelo menos um carácter inválido.

-ou-

entryNameEncoding está definido para uma codificação Unicode diferente da UTF-8.

destinationDirectoryName ou source é null.

O caminho especificado em destinationDirectoryName 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 de 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-

overwriteFiles é false e uma entrada de arquivo a extrair tem o mesmo nome que uma entrada que já foi extraída ou que existe em destinationDirectoryName.

O chamador não tem a permissão necessária para aceder ao arquivo ou ao diretório de destino.

destinationDirectoryName contém um formato inválido.

O arquivo contido no source stream não é um arquivo zip válido.

-ou-

Nenhuma entrada de arquivo foi encontrada ou estava corrompida.

-ou-

Uma entrada de arquivo foi comprimida usando um método de compressão que não é suportado.

Observações

Warning

Este método não deve ser usado para extrair arquivos não confiáveis. Não aplica quaisquer limites de tamanho, de número de entradas ou outras políticas necessárias para a extração segura de arquivos não confiáveis. Para mais informações sobre como extrair arquivos de fontes não confiáveis em segurança, consulte Melhores práticas para utilização de arquivos zip e tar.

O diretório especificado por destinationDirectoryName pode já existir. Este método cria o diretório de destino, os diretórios pais em falta e subdiretórios conforme necessário ao extrair entradas. Se o arquivo estiver vazio, este método não cria o diretório de destino.

Exceções relacionadas com a validação dos caminhos no destinationDirectoryName ou dos ficheiros no arquivo zip contidos nos source parâmetros são lançadas antes da extração. Caso contrário, 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.

Se uma entrada no arquivo postal for um link simbólico, é extraído como uma pasta normal, já que a informação do link simbólico não é preservada no formato ZIP. Se destinationDirectoryName ou qualquer um dos seus diretórios-pais for uma junção ou ligação simbólica pré-existente, a ligação é seguida e a extração escreve na pasta de destino final.

Se um ficheiro a ser arquivado tiver uma última hora modificada inválida, a primeira data e hora representáveis no formato de carimbo postal (meia-noite de 1 de janeiro de 1980) serão usadas.

Aplica-se a

ExtractToDirectory(String, String, Encoding)

Origem:
ZipFile.Extract.cs
Origem:
ZipFile.Extract.cs
Origem:
ZipFile.Extract.cs
Origem:
ZipFile.Extract.cs
Origem:
ZipFile.Extract.cs

Extrai todos os ficheiros do arquivo zip especificado para um diretório no sistema de ficheiros e utiliza a codificação de caracteres especificada para nomes de entrada e comentários.

public:
 static void ExtractToDirectory(System::String ^ sourceArchiveFileName, System::String ^ destinationDirectoryName, System::Text::Encoding ^ entryNameEncoding);
public static void ExtractToDirectory(string sourceArchiveFileName, string destinationDirectoryName, System.Text.Encoding? entryNameEncoding);
public static void ExtractToDirectory(string sourceArchiveFileName, string destinationDirectoryName, System.Text.Encoding entryNameEncoding);
static member ExtractToDirectory : string * string * System.Text.Encoding -> unit
Public Shared Sub ExtractToDirectory (sourceArchiveFileName As String, destinationDirectoryName As String, entryNameEncoding As Encoding)

Parâmetros

sourceArchiveFileName
String

O caminho para o arquivo que deve ser extraído.

destinationDirectoryName
String

O caminho para o diretório onde colocar os ficheiros extraídos, especificado como 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 em falta são criados conforme necessário ao extrair entradas.

entryNameEncoding
Encoding

A codificação a usar ao ler ou escrever nomes de entradas e comentários neste arquivo. Especifique um valor para este parâmetro apenas quando for necessária uma codificação para interoperabilidade com ferramentas de arquivo zip e bibliotecas que não suportem codificação UTF-8 para nomes de entradas ou comentários.

Exceções

destinationDirectoryName ou sourceArchiveFileName é Empty, contém apenas espaço em branco, ou contém pelo menos um carácter inválido.

-ou-

entryNameEncoding está definido para uma codificação Unicode diferente da UTF-8.

destinationDirectoryName ou sourceArchiveFileName é null.

O caminho especificado em destinationDirectoryName ou sourceArchiveFileName 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 de 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-

Uma entrada de arquivo a extrair tem o mesmo nome que uma entrada que já foi extraída ou que existe em destinationDirectoryName.

O chamador não tem a permissão necessária para aceder ao arquivo ou ao diretório de destino.

destinationDirectoryName ou sourceArchiveFileName contém um formato inválido.

sourceArchiveFileName não foi encontrado.

O arquivo especificado por sourceArchiveFileName não é um arquivo zip válido.

-ou-

Nenhuma entrada de arquivo foi encontrada ou estava corrompida.

-ou-

Uma entrada de arquivo foi comprimida usando um método de compressão que não é suportado.

Observações

Warning

Este método não deve ser usado para extrair arquivos não confiáveis. Não aplica quaisquer limites de tamanho, de número de entradas ou outras políticas necessárias para a extração segura de arquivos não confiáveis. Para mais informações sobre como extrair arquivos de fontes não confiáveis em segurança, consulte Melhores práticas para utilização de arquivos zip e tar.

O diretório especificado por destinationDirectoryName pode já existir. Este método cria o diretório de destino, os diretórios pais em falta e subdiretórios conforme necessário ao extrair entradas. Se o arquivo estiver vazio, este método não cria o diretório de destino.

Exceções relacionadas com a validação dos caminhos nos destinationDirectoryName parâmetros ou sourceArchiveFileName são lançadas antes da extração. Caso contrário, 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.

Se uma entrada no arquivo postal for um link simbólico, é extraído como uma pasta normal, já que a informação do link simbólico não é preservada no formato ZIP. Se destinationDirectoryName ou qualquer um dos seus diretórios-pais for uma junção ou ligação simbólica pré-existente, a ligação é seguida e a extração escreve na pasta de destino final.

Se entryNameEncoding for definido para um valor diferente de null, os nomes das entradas e os comentários são decodificados de acordo com as seguintes regras:

  • Para entradas onde o flag de codificação da linguagem (no flag de bit de uso geral do cabeçalho local do ficheiro) não está definido, os nomes das entradas e comentários são decodificados usando a codificação especificada.
  • Para entradas onde o flag de codificação da linguagem está definido, os nomes das entradas e comentários são decodificados usando UTF-8.

Se entryNameEncoding for definido para null, os nomes das entradas e os comentários são decodificados de acordo com as seguintes regras:

  • Para entradas onde o flag de codificação da linguagem (no flag de bit de uso geral do cabeçalho local do ficheiro) não está definido, os nomes das entradas e comentários são descodificados usando a página de código padrão do sistema atual.
  • Para entradas onde o flag de codificação da linguagem está definido, os nomes das entradas e comentários são decodificados usando UTF-8.

Aplica-se a

ExtractToDirectory(String, String, Boolean)

Origem:
ZipFile.Extract.cs
Origem:
ZipFile.Extract.cs
Origem:
ZipFile.Extract.cs
Origem:
ZipFile.Extract.cs
Origem:
ZipFile.Extract.cs

Extrai todos os ficheiros do arquivo especificado para um diretório no sistema de ficheiros.

public:
 static void ExtractToDirectory(System::String ^ sourceArchiveFileName, System::String ^ destinationDirectoryName, bool overwriteFiles);
public static void ExtractToDirectory(string sourceArchiveFileName, string destinationDirectoryName, bool overwriteFiles);
static member ExtractToDirectory : string * string * bool -> unit
Public Shared Sub ExtractToDirectory (sourceArchiveFileName As String, destinationDirectoryName As String, overwriteFiles As Boolean)

Parâmetros

sourceArchiveFileName
String

O caminho no sistema de ficheiros para o arquivo que deve ser extraído.

destinationDirectoryName
String

O caminho para o diretório de destino no sistema de ficheiros. O diretório já pode existir. Os diretórios em falta são criados conforme necessário ao extrair entradas.

overwriteFiles
Boolean

true sobrescrever ficheiros; false caso contrário.

Exceções

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

sourceArchiveFileName ou destinationDirectoryName é null.

sourceArchiveFileName ou destinationDirectoryName especifica um caminho, um nome de ficheiro, ou ambos que excedam o comprimento máximo definido pelo sistema.

O caminho especificado por sourceArchiveFileName ou destinationDirectoryName é inválido (por exemplo, está num disco não mapeado).

overwriteFiles é false e destinationDirectoryName já contém um ficheiro com o mesmo nome de um ficheiro que está a ser extraído.

-ou-

Ocorreu um erro de E/S.

-ou-

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 a ZipArchiveEntry resultaria num destino de ficheiro fora do diretório de destino (por exemplo, devido aos acessores de diretório pai).

-ou-

A ZipArchiveEntry tem o mesmo nome que uma entrada do mesmo arquivo que já foi extraída.

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

sourceArchiveFileName ou destinationDirectoryName está num formato inválido.

sourceArchiveFileName não foi encontrado.

O arquivo especificado por sourceArchiveFileName não é válido ZipArchive.

-ou-

A ZipArchiveEntry não foi encontrada ou estava corrompida.

-ou-

A ZipArchiveEntry foi comprimida usando um método de compressão que não é suportado.

Observações

Warning

Este método não deve ser usado para extrair arquivos não confiáveis. Não aplica quaisquer limites de tamanho, de número de entradas ou outras políticas necessárias para a extração segura de arquivos não confiáveis. Para mais informações sobre como extrair arquivos de fontes não confiáveis em segurança, consulte Melhores práticas para utilização de arquivos zip e tar.

O diretório especificado por destinationDirectoryName pode já existir. Este método cria o diretório de destino, os diretórios pais em falta e subdiretórios conforme necessário ao extrair entradas. Se o arquivo estiver vazio, este método não cria o diretório de destino.

Se houver um erro durante a extração do arquivo, este permanecerá parcialmente extraído.

Cada entrada será extraída de modo que o ficheiro extraído tenha o mesmo caminho relativo para o destinationDirectoryName que a entrada tem para o arquivo.

Os sourceArchiveFileName parâmetros e destinationDirectoryName aceitam tanto caminhos relativos como absolutos. Um caminho relativo é interpretado como relativo ao diretório de trabalho atual.

Se uma entrada no arquivo postal for um link simbólico, é extraído como uma pasta normal, já que a informação do link simbólico não é preservada no formato ZIP. Se destinationDirectoryName ou qualquer um dos seus diretórios-pais for uma junção ou ligação simbólica pré-existente, a ligação é seguida e a extração escreve na pasta de destino final.

Se um ficheiro a ser arquivado tiver uma última hora modificada inválida, a primeira data e hora representáveis no formato de carimbo postal (meia-noite de 1 de janeiro de 1980) serão usadas.

Aplica-se a

ExtractToDirectory(Stream, String, Encoding)

Origem:
ZipFile.Extract.cs
Origem:
ZipFile.Extract.cs
Origem:
ZipFile.Extract.cs
Origem:
ZipFile.Extract.cs

Extrai todos os ficheiros do arquivo zip armazenado no fluxo especificado e coloca-os no diretório de destino especificado no sistema de ficheiros, utilizando a codificação de caracteres especificada para nomes de entradas e comentários.

public:
 static void ExtractToDirectory(System::IO::Stream ^ source, System::String ^ destinationDirectoryName, System::Text::Encoding ^ entryNameEncoding);
public static void ExtractToDirectory(System.IO.Stream source, string destinationDirectoryName, System.Text.Encoding? entryNameEncoding);
static member ExtractToDirectory : System.IO.Stream * string * System.Text.Encoding -> unit
Public Shared Sub ExtractToDirectory (source As Stream, destinationDirectoryName As String, entryNameEncoding As Encoding)

Parâmetros

source
Stream

O fluxo do qual o arquivo zip deve ser extraído.

destinationDirectoryName
String

O caminho para o diretório onde colocar os ficheiros extraídos, especificado como 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 em falta são criados conforme necessário ao extrair entradas.

entryNameEncoding
Encoding

A codificação a usar ao ler ou escrever nomes de entradas e comentários neste arquivo. Especifique um valor para este parâmetro apenas quando for necessária uma codificação para interoperabilidade com ferramentas de arquivo zip e bibliotecas que não suportem codificação UTF-8 para nomes de entradas ou comentários.

Exceções

destinationDirectoryName é Empty, contém apenas espaço em branco, ou contém pelo menos um carácter inválido.

-ou-

entryNameEncoding está definido para uma codificação Unicode diferente da UTF-8.

destinationDirectoryName ou source é null.

O caminho especificado em destinationDirectoryName 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 de 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-

Uma entrada de arquivo a extrair tem o mesmo nome que uma entrada que já foi extraída ou que existe em destinationDirectoryName.

O chamador não tem a permissão necessária para aceder ao arquivo ou ao diretório de destino.

destinationDirectoryName contém um formato inválido.

O arquivo contido no source stream não é um arquivo zip válido.

-ou-

Nenhuma entrada de arquivo foi encontrada ou estava corrompida.

-ou-

Uma entrada de arquivo foi comprimida usando um método de compressão que não é suportado.

Observações

Warning

Este método não deve ser usado para extrair arquivos não confiáveis. Não aplica quaisquer limites de tamanho, de número de entradas ou outras políticas necessárias para a extração segura de arquivos não confiáveis. Para mais informações sobre como extrair arquivos de fontes não confiáveis em segurança, consulte Melhores práticas para utilização de arquivos zip e tar.

O diretório especificado por destinationDirectoryName pode já existir. Este método cria o diretório de destino, os diretórios pais em falta e subdiretórios conforme necessário ao extrair entradas. Se o arquivo estiver vazio, este método não cria o diretório de destino.

Exceções relacionadas com a validação dos caminhos no destinationDirectoryName ou dos ficheiros no arquivo zip contidos nos source parâmetros são lançadas antes da extração. Caso contrário, 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.

Se um ficheiro a ser arquivado tiver uma última hora modificada inválida, a primeira data e hora representáveis no formato de carimbo postal (meia-noite de 1 de janeiro de 1980) serão usadas.

Aplica-se a

ExtractToDirectory(Stream, String, ZipExtractionOptions)

Origem:
ZipFile.Extract.cs
public:
 static void ExtractToDirectory(System::IO::Stream ^ source, System::String ^ destinationDirectoryName, System::IO::Compression::ZipExtractionOptions ^ options);
public static void ExtractToDirectory(System.IO.Stream source, string destinationDirectoryName, System.IO.Compression.ZipExtractionOptions options);
static member ExtractToDirectory : System.IO.Stream * string * System.IO.Compression.ZipExtractionOptions -> unit
Public Shared Sub ExtractToDirectory (source As Stream, destinationDirectoryName As String, options As ZipExtractionOptions)

Parâmetros

source
Stream
destinationDirectoryName
String

O caminho para o diretório onde colocar os ficheiros extraídos. O diretório já pode existir. Os diretórios em falta são criados conforme necessário ao extrair entradas.

Observações

Warning

Este método não deve ser usado para extrair arquivos não confiáveis. Não aplica quaisquer limites de tamanho, de número de entradas ou outras políticas necessárias para a extração segura de arquivos não confiáveis. Para mais informações sobre como extrair arquivos de fontes não confiáveis em segurança, consulte Melhores práticas para utilização de arquivos zip e tar.

O diretório especificado por destinationDirectoryName pode já existir. Este método cria o diretório de destino, os diretórios pais em falta e subdiretórios conforme necessário ao extrair entradas. Se o arquivo estiver vazio, este método não cria o diretório de destino.

Cada ficheiro extraído tem o mesmo caminho relativo a destinationDirectoryName que a sua entrada de origem tem até à raiz do arquivo.

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 permanece parcialmente extraído.

Definir OverwriteFiles para true sobrescrever ficheiros existentes. O padrão é false, o que faz com que a extração lance um IOException se já existe um ficheiro a extrair.

Use Password para fornecer a palavra-passe para entradas encriptadas.

Use EntryNameEncoding para especificar a codificação dos nomes das entradas e comentários ao abrir o arquivo. Para detalhes sobre como esta codificação é utilizada, veja ZipArchive(Stream, ZipArchiveMode, Boolean, Encoding).

Os links simbólicos no arquivo não são recriados como links simbólicos. Se destinationDirectoryName ou qualquer um dos seus diretórios-pai for uma junção ou ligação simbólica pré-existente, a ligação é seguida e a extração escreve na pasta de destino final.

O source riacho fica aberto após a extração.

Aplica-se a

ExtractToDirectory(Stream, String, Boolean)

Origem:
ZipFile.Extract.cs
Origem:
ZipFile.Extract.cs
Origem:
ZipFile.Extract.cs
Origem:
ZipFile.Extract.cs

Extrai todos os ficheiros do arquivo zip armazenado no fluxo especificado e coloca-os no diretório de destino especificado no sistema de ficheiros, permitindo opcionalmente escolher se os ficheiros no diretório de destino devem ser sobrescrevidos.

public:
 static void ExtractToDirectory(System::IO::Stream ^ source, System::String ^ destinationDirectoryName, bool overwriteFiles);
public static void ExtractToDirectory(System.IO.Stream source, string destinationDirectoryName, bool overwriteFiles);
static member ExtractToDirectory : System.IO.Stream * string * bool -> unit
Public Shared Sub ExtractToDirectory (source As Stream, destinationDirectoryName As String, overwriteFiles As Boolean)

Parâmetros

source
Stream

O fluxo do qual o arquivo zip deve ser extraído.

destinationDirectoryName
String

O caminho para o diretório onde colocar os ficheiros extraídos, especificado como 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 em falta são criados conforme necessário ao extrair entradas.

overwriteFiles
Boolean

true sobrescrever ficheiros; false caso contrário.

Exceções

destinationDirectoryName é Empty, contém apenas espaço em branco, ou contém pelo menos um carácter inválido.

destinationDirectoryName ou source é null.

O caminho especificado em destinationDirectoryName 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 de 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-

overwriteFiles é false e uma entrada de arquivo a extrair tem o mesmo nome que uma entrada que já foi extraída ou que existe em destinationDirectoryName.

O chamador não tem a permissão necessária para aceder ao arquivo ou ao diretório de destino.

destinationDirectoryName contém um formato inválido.

O arquivo contido no source stream não é um arquivo zip válido.

-ou-

Nenhuma entrada de arquivo foi encontrada ou estava corrompida.

-ou-

Uma entrada de arquivo foi comprimida usando um método de compressão que não é suportado.

Observações

Warning

Este método não deve ser usado para extrair arquivos não confiáveis. Não aplica quaisquer limites de tamanho, de número de entradas ou outras políticas necessárias para a extração segura de arquivos não confiáveis. Para mais informações sobre como extrair arquivos de fontes não confiáveis em segurança, consulte Melhores práticas para utilização de arquivos zip e tar.

O diretório especificado por destinationDirectoryName pode já existir. Este método cria o diretório de destino, os diretórios pais em falta e subdiretórios conforme necessário ao extrair entradas. Se o arquivo estiver vazio, este método não cria o diretório de destino.

Exceções relacionadas com a validação dos caminhos no destinationDirectoryName ou dos ficheiros no arquivo zip contidos nos source parâmetros são lançadas antes da extração. Caso contrário, 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.

Se uma entrada no arquivo postal for um link simbólico, é extraído como uma pasta normal, já que a informação do link simbólico não é preservada no formato ZIP. Se destinationDirectoryName ou qualquer um dos seus diretórios-pais for uma junção ou ligação simbólica pré-existente, a ligação é seguida e a extração escreve na pasta de destino final.

Se um ficheiro a ser arquivado tiver uma última hora modificada inválida, a primeira data e hora representáveis no formato de carimbo postal (meia-noite de 1 de janeiro de 1980) serão usadas.

Aplica-se a

ExtractToDirectory(String, String)

Origem:
ZipFile.Extract.cs
Origem:
ZipFile.Extract.cs
Origem:
ZipFile.Extract.cs
Origem:
ZipFile.Extract.cs
Origem:
ZipFile.Extract.cs

Extrai todos os ficheiros do arquivo zip especificado para um diretório no sistema de ficheiros.

public:
 static void ExtractToDirectory(System::String ^ sourceArchiveFileName, System::String ^ destinationDirectoryName);
public static void ExtractToDirectory(string sourceArchiveFileName, string destinationDirectoryName);
static member ExtractToDirectory : string * string -> unit
Public Shared Sub ExtractToDirectory (sourceArchiveFileName As String, destinationDirectoryName As String)

Parâmetros

sourceArchiveFileName
String

O caminho para o arquivo que deve ser extraído.

destinationDirectoryName
String

O caminho para o diretório onde colocar os ficheiros extraídos, especificado como 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 em falta são criados conforme necessário ao extrair entradas.

Exceções

destinationDirectoryName ou sourceArchiveFileName é Empty, contém apenas espaço em branco, ou contém pelo menos um carácter inválido.

destinationDirectoryName ou sourceArchiveFileName é null.

O caminho especificado em destinationDirectoryName ou sourceArchiveFileName 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 de 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-

Uma entrada de arquivo a extrair tem o mesmo nome que uma entrada que já foi extraída ou que existe em destinationDirectoryName.

O chamador não tem a permissão necessária para aceder ao arquivo ou ao diretório de destino.

destinationDirectoryName ou sourceArchiveFileName contém um formato inválido.

sourceArchiveFileName não foi encontrado.

O arquivo especificado por sourceArchiveFileName não é um arquivo zip válido.

-ou-

Nenhuma entrada de arquivo foi encontrada ou estava corrompida.

-ou-

Uma entrada de arquivo foi comprimida usando um método de compressão que não é suportado.

Exemplos

Este exemplo mostra como criar e extrair um arquivo zip usando a ZipFile classe. Comprime o conteúdo de uma pasta num arquivo zip e extrai esse conteúdo para uma nova pasta. Para usar a ZipFile classe, tens de referenciar a System.IO.Compression.FileSystem montagem no teu projeto.

using System;
using System.IO.Compression;

class Program
{
    static void Main(string[] args)
    {
        string startPath = @".\start";
        string zipPath = @".\result.zip";
        string extractPath = @".\extract";

        ZipFile.CreateFromDirectory(startPath, zipPath);

        ZipFile.ExtractToDirectory(zipPath, extractPath);
    }
}
open System.IO.Compression

let startPath = @".\start"
let zipPath = @".\result.zip"
let extractPath = @".\extract"

ZipFile.CreateFromDirectory(startPath, zipPath)

ZipFile.ExtractToDirectory(zipPath, extractPath)
Imports System.IO.Compression

Module Module1

    Sub Main()
        Dim startPath As String = ".\start"
        Dim zipPath As String = ".\result.zip"
        Dim extractPath As String = ".\extract"

        ZipFile.CreateFromDirectory(startPath, zipPath)

        ZipFile.ExtractToDirectory(zipPath, extractPath)
    End Sub

End Module

Observações

Warning

Este método não deve ser usado para extrair arquivos não confiáveis. Não aplica quaisquer limites de tamanho, de número de entradas ou outras políticas necessárias para a extração segura de arquivos não confiáveis. Para mais informações sobre como extrair arquivos de fontes não confiáveis em segurança, consulte Melhores práticas para utilização de arquivos zip e tar.

O diretório especificado por destinationDirectoryName pode já existir. Este método cria o diretório de destino, os diretórios pais em falta e subdiretórios conforme necessário ao extrair entradas. Se o arquivo estiver vazio, este método não cria o diretório de destino.

Exceções relacionadas com a validação dos caminhos nos destinationDirectoryName parâmetros ou sourceArchiveFileName são lançadas antes da extração. Caso contrário, 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.

Se uma entrada no arquivo postal for um link simbólico, é extraído como uma pasta normal, já que a informação do link simbólico não é preservada no formato ZIP. Se destinationDirectoryName ou qualquer um dos seus diretórios-pais for uma junção ou ligação simbólica pré-existente, a ligação é seguida e a extração escreve na pasta de destino final.

Aplica-se a

ExtractToDirectory(Stream, String)

Origem:
ZipFile.Extract.cs
Origem:
ZipFile.Extract.cs
Origem:
ZipFile.Extract.cs
Origem:
ZipFile.Extract.cs

Extrai todos os ficheiros do arquivo zip armazenado no fluxo especificado e coloca-os no diretório de destino especificado no sistema de ficheiros.

public:
 static void ExtractToDirectory(System::IO::Stream ^ source, System::String ^ destinationDirectoryName);
public static void ExtractToDirectory(System.IO.Stream source, string destinationDirectoryName);
static member ExtractToDirectory : System.IO.Stream * string -> unit
Public Shared Sub ExtractToDirectory (source As Stream, destinationDirectoryName As String)

Parâmetros

source
Stream

O fluxo do qual o arquivo zip deve ser extraído.

destinationDirectoryName
String

O caminho para o diretório onde colocar os ficheiros extraídos, especificado como 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 em falta 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 carácter inválido.

destinationDirectoryName ou source é null.

O caminho especificado em destinationDirectoryName 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 de 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-

Uma entrada de arquivo a extrair tem o mesmo nome que uma entrada que já foi extraída ou que existe em destinationDirectoryName.

O chamador não tem a permissão necessária para aceder ao arquivo ou ao diretório de destino.

destinationDirectoryName contém um formato inválido.

O arquivo contido no source stream não é um arquivo zip válido.

-ou-

Nenhuma entrada de arquivo foi encontrada ou estava corrompida.

-ou-

Uma entrada de arquivo foi comprimida usando um método de compressão que não é suportado.

Observações

Warning

Este método não deve ser usado para extrair arquivos não confiáveis. Não aplica quaisquer limites de tamanho, de número de entradas ou outras políticas necessárias para a extração segura de arquivos não confiáveis. Para mais informações sobre como extrair arquivos de fontes não confiáveis em segurança, consulte Melhores práticas para utilização de arquivos zip e tar.

O diretório especificado por destinationDirectoryName pode já existir. Este método cria o diretório de destino, os diretórios pais em falta e subdiretórios conforme necessário ao extrair entradas. Se o arquivo estiver vazio, este método não cria o diretório de destino.

Exceções relacionadas com a validação dos caminhos no destinationDirectoryName ou dos ficheiros no arquivo zip contidos nos source parâmetros são lançadas antes da extração. Caso contrário, 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.

Se uma entrada no arquivo postal for um link simbólico, é extraído como uma pasta normal, já que a informação do link simbólico não é preservada no formato ZIP. Se destinationDirectoryName ou qualquer um dos seus diretórios-pais for uma junção ou ligação simbólica pré-existente, a ligação é seguida e a extração escreve na pasta de destino final.

Se um ficheiro a ser arquivado tiver uma última hora modificada inválida, a primeira data e hora representáveis no formato de carimbo postal (meia-noite de 1 de janeiro de 1980) serão usadas.

Aplica-se a