ZipFile.OpenAsync Método

Definição

Sobrecargas

Name Description
OpenAsync(String, ZipArchiveMode, CancellationToken)

Abre assíncronamente a ZipArchive no especificado archiveFileName no modo especificado ZipArchiveMode .

OpenAsync(String, ZipArchiveMode, Encoding, CancellationToken)

Abre assíncronamente a ZipArchive no especificado archiveFileName no modo especificado ZipArchiveMode .

OpenAsync(String, ZipArchiveMode, CancellationToken)

Origem:
ZipFile.Create.Async.cs
Origem:
ZipFile.Create.Async.cs

Abre assíncronamente a ZipArchive no especificado archiveFileName no modo especificado ZipArchiveMode .

public static System.Threading.Tasks.Task<System.IO.Compression.ZipArchive> OpenAsync(string archiveFileName, System.IO.Compression.ZipArchiveMode mode, System.Threading.CancellationToken cancellationToken = default);
static member OpenAsync : string * System.IO.Compression.ZipArchiveMode * System.Threading.CancellationToken -> System.Threading.Tasks.Task<System.IO.Compression.ZipArchive>
Public Shared Function OpenAsync (archiveFileName As String, mode As ZipArchiveMode, Optional cancellationToken As CancellationToken = Nothing) As Task(Of ZipArchive)

Parâmetros

archiveFileName
String

O caminho no sistema de ficheiros para abrir o arquivo.

mode
ZipArchiveMode

Um dos valores de enumeração que especifica as ações permitidas nas entradas do arquivo aberto.

cancellationToken
CancellationToken

O token de cancelamento para monitorizar pedidos de cancelamento.

Devoluções

Exceções

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

archiveFileName é null.

archiveFileName excede o comprimento máximo definido pelo sistema. Por exemplo, em plataformas baseadas em Windows, os caminhos devem ter menos de 248 caracteres e os nomes dos ficheiros devem ser inferiores a 260 caracteres.

O especificado archiveFileName é inválido (por exemplo, está num disco não mapeado).

Um erro de E/S não especificado ocorreu durante a abertura do ficheiro.

archiveFileName especificava um diretório.

-ou-

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

mode especificou um valor inválido.

O ficheiro especificado archiveFileName não foi encontrado.

archiveFileName está num formato inválido.

O ficheiro especificado não podia ser interpretado como um ficheiro zip.

-ou-

mode é Update e uma entrada está em falta no arquivo ou está corrompida e não pode ser lida.

-ou-

mode é Update e uma entrada é demasiado grande para caber na memória.

Uma operação assíncrona é cancelada.

Observações

Para archiveFileName:

O caminho pode especificar informação relativa ou absoluta do caminho. A informação relativa do caminho é interpretada como relativa ao diretório de trabalho atual.

Para mode:

Se Read for especificado, o ficheiro é aberto com System.IO.FileMode.Open, e lançará a FileNotFoundException se o ficheiro não existir.

Se Create for especificado, o ficheiro é aberto com System.IO.FileMode.CreateNew, e lançará a System.IO.IOException se o ficheiro já existir.

Se Update for especificado, o ficheiro é aberto com System.IO.FileMode.OpenOrCreate.

Se o ficheiro existir e for um ficheiro zip, as suas entradas tornar-se-ão acessíveis e poderão ser modificadas, podendo ser criadas novas entradas.

Se o ficheiro existir e não for um ficheiro zip, a InvalidDataException é lançado.

Se o ficheiro existir e estiver vazio ou não existir, será criado um novo ficheiro zip.

Criar um ficheiro zip com o Create modo é mais eficiente ao criar um novo ficheiro zip.

Aplica-se a

OpenAsync(String, ZipArchiveMode, Encoding, CancellationToken)

Origem:
ZipFile.Create.Async.cs
Origem:
ZipFile.Create.Async.cs

Abre assíncronamente a ZipArchive no especificado archiveFileName no modo especificado ZipArchiveMode .

public static System.Threading.Tasks.Task<System.IO.Compression.ZipArchive> OpenAsync(string archiveFileName, System.IO.Compression.ZipArchiveMode mode, System.Text.Encoding? entryNameEncoding, System.Threading.CancellationToken cancellationToken = default);
static member OpenAsync : string * System.IO.Compression.ZipArchiveMode * System.Text.Encoding * System.Threading.CancellationToken -> System.Threading.Tasks.Task<System.IO.Compression.ZipArchive>
Public Shared Function OpenAsync (archiveFileName As String, mode As ZipArchiveMode, entryNameEncoding As Encoding, Optional cancellationToken As CancellationToken = Nothing) As Task(Of ZipArchive)

Parâmetros

archiveFileName
String

O caminho no sistema de ficheiros para abrir o arquivo.

mode
ZipArchiveMode

Um dos valores de enumeração que especifica as ações permitidas nas entradas do arquivo aberto.

entryNameEncoding
Encoding

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

cancellationToken
CancellationToken

O token de cancelamento para monitorizar pedidos de cancelamento.

Devoluções

Exceções

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

archiveFileName é null.

archiveFileName excede o comprimento máximo definido pelo sistema. Por exemplo, em plataformas baseadas em Windows, os caminhos devem ter menos de 248 caracteres e os nomes dos ficheiros devem ser inferiores a 260 caracteres.

archiveFileName é inválido (por exemplo, está num disco não mapeado).

Um erro de E/S não especificado ocorreu durante a abertura do ficheiro.

archiveFileName especificava um diretório.

-ou-

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

mode especificou um valor inválido.

O ficheiro especificado archiveFileName não foi encontrado.

archiveFileName está num formato inválido.

O ficheiro especificado não podia ser interpretado como um ficheiro zip.

-ou-

mode é Update e uma entrada está em falta no arquivo ou está corrompida e não pode ser lida.

-ou-

mode é Update e uma entrada é demasiado grande para caber na memória.

Uma operação assíncrona é cancelada.

Observações

Para archiveFileName:

O caminho pode especificar informação relativa ou absoluta do caminho. A informação relativa do caminho é interpretada como relativa ao diretório de trabalho atual.

Para mode:

Se Read for especificado, o ficheiro é aberto com System.IO.FileMode.Open, e lançará a FileNotFoundException se o ficheiro não existir.

Se Create for especificado, o ficheiro é aberto com System.IO.FileMode.CreateNew, e lançará a System.IO.IOException se o ficheiro já existir.

Se Update for especificado, o ficheiro é aberto com System.IO.FileMode.OpenOrCreate.

Se o ficheiro existir e for um ficheiro zip, as suas entradas tornar-se-ão acessíveis e poderão ser modificadas, podendo ser criadas novas entradas.

Se o ficheiro existir e não for um ficheiro zip, a InvalidDataException é lançado.

Se o ficheiro existir e estiver vazio ou não existir, será criado um novo ficheiro zip.

Criar um ficheiro zip com o Create modo é mais eficiente ao criar um novo ficheiro zip.

Especificar um valor diferente de null para entryNameEncoding é desencorajado. No entanto, isto pode ser necessário para a interoperabilidade com ferramentas e bibliotecas de arquivo zip que não suportam corretamente a codificação UTF-8 para nomes de entradas ou comentários.

Este valor é usado da seguinte forma:

  • Leitura (abertura) de ficheiros de arquivo ZIP:
    • Se entryNameEncoding não for especificado (== null):
      • Para entradas onde o flag de codificação da linguagem (EFS) no flag de bit de uso geral do cabeçalho local do ficheiro não está definido, use a página de código padrão do sistema atual (Encoding.Default) para decodificar o nome da entrada e o comentário.
      • Para entradas onde o flag de codificação da linguagem (EFS) no flag de bit de uso geral do cabeçalho local do ficheiro está definido, use UTF-8 (Encoding.UTF8) para decodificar o nome da entrada e o comentário.
    • Se entryNameEncoding for especificado (!= null):
      • Para entradas onde o flag de codificação da linguagem (EFS) no flag de bit de uso geral do cabeçalho local do ficheiro não está definido, use o especificado entryNameEncoding para decodificar o nome da entrada e o comentário.
      • Para entradas onde o flag de codificação da linguagem (EFS) no flag de bit de uso geral do cabeçalho local do ficheiro está definido, use UTF-8 (Encoding.UTF8) para decodificar o nome da entrada e o comentário.
  • Escrever (guardar) ficheiros de arquivo ZIP:
    • Se entryNameEncoding não for especificado (== null):
      • Para nomes de entrada e comentários que contenham caracteres fora do intervalo ASCII, a flag de codificação da linguagem (EFS) será definida no flag de bit de uso geral do cabeçalho local do ficheiro, e será usado UTF-8 (Encoding.UTF8) para codificar o nome da entrada e o comentário em bytes.
      • Para nomes de entradas e comentários que não contenham caracteres fora do intervalo ASCII, o flag de codificação da linguagem (EFS) não será definido no flag de bit de uso geral do cabeçalho local do ficheiro, e a página de código padrão do sistema atual (Encoding.Default) será usada para codificar os nomes das entradas e comentários em bytes.
    • Se entryNameEncoding for especificado (!= null):
      • O especificado entryNameEncoding será sempre usado para codificar os nomes das entradas e comentários em bytes.
      • O flag de codificação da linguagem (EFS) no flag de bit de uso geral do cabeçalho local do ficheiro será definido se, e somente se, o especificado entryNameEncoding for uma codificação UTF-8.
  • Codificações Unicode que não sejam UTF-8 não podem ser usadas para o entryNameEncoding, caso contrário um ArgumentException é lançado.

    Aplica-se a