ZipFile.OpenAsync Método

Definição

Sobrecargas

Nome Description
OpenAsync(String, ZipArchiveMode, CancellationToken)

Abre de forma assíncrona um ZipArchive no modo especificado archiveFileNameZipArchiveMode .

OpenAsync(String, ZipArchiveMode, Encoding, CancellationToken)

Abre de forma assíncrona um ZipArchive no modo especificado archiveFileNameZipArchiveMode .

OpenAsync(String, ZipArchiveMode, CancellationToken)

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

Abre de forma assíncrona um ZipArchive no modo especificado archiveFileNameZipArchiveMode .

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 arquivos no qual abrir o arquivo morto.

mode
ZipArchiveMode

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

cancellationToken
CancellationToken

O token de cancelamento a ser monitorado para solicitações de cancelamento.

Retornos

Exceções

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

archiveFileName é null.

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

O especificado archiveFileName é inválido (por exemplo, ele está em uma unidade não mapeada).

Erro de E/S não especificado ao abrir o arquivo.

archiveFileName especificou um diretório.

- ou -

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

mode especificou um valor inválido.

O arquivo especificado não archiveFileName foi encontrado.

archiveFileName está em um formato inválido.

O arquivo especificado não pôde ser interpretado como um arquivo zip.

- ou -

mode é Update e uma entrada está ausente do arquivo morto ou está corrompida e não pode ser lida.

- ou -

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

Uma operação assíncrona é cancelada.

Comentários

Para archiveFileName:

O caminho tem permissão para especificar informações de caminho relativas ou absolutas. As informações de caminho relativo são interpretadas como relativas ao diretório de trabalho atual.

Para mode:

Se Read for especificado, o arquivo será aberto com System.IO.FileMode.Opene gerará um FileNotFoundException caso o arquivo não exista.

Se Create for especificado, o arquivo será aberto com System.IO.FileMode.CreateNew, e gerará um System.IO.IOException se o arquivo já existir.

Se Update for especificado, o arquivo será aberto com System.IO.FileMode.OpenOrCreate.

Se o arquivo existir e for um arquivo zip, suas entradas ficarão acessíveis e poderão ser modificadas e novas entradas poderão ser criadas.

Se o arquivo existir e não for um arquivo zip, um InvalidDataException será gerado.

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

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

Aplica-se a

OpenAsync(String, ZipArchiveMode, Encoding, CancellationToken)

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

Abre de forma assíncrona um ZipArchive no modo especificado archiveFileNameZipArchiveMode .

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 arquivos no qual abrir o arquivo morto.

mode
ZipArchiveMode

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

entryNameEncoding
Encoding

A codificação a ser usada ao ler ou gravar nomes de entrada e comentários neste ZipArchive.

cancellationToken
CancellationToken

O token de cancelamento a ser monitorado para solicitações de cancelamento.

Retornos

Exceções

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

archiveFileName é null.

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

archiveFileName é inválido (por exemplo, ele está em uma unidade não mapeada).

Erro de E/S não especificado ao abrir o arquivo.

archiveFileName especificou um diretório.

- ou -

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

mode especificou um valor inválido.

O arquivo especificado não archiveFileName foi encontrado.

archiveFileName está em um formato inválido.

O arquivo especificado não pôde ser interpretado como um arquivo zip.

- ou -

mode é Update e uma entrada está ausente do arquivo morto ou está corrompida e não pode ser lida.

- ou -

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

Uma operação assíncrona é cancelada.

Comentários

Para archiveFileName:

O caminho tem permissão para especificar informações de caminho relativas ou absolutas. As informações de caminho relativo são interpretadas como relativas ao diretório de trabalho atual.

Para mode:

Se Read for especificado, o arquivo será aberto com System.IO.FileMode.Opene gerará um FileNotFoundException caso o arquivo não exista.

Se Create for especificado, o arquivo será aberto com System.IO.FileMode.CreateNew, e gerará um System.IO.IOException se o arquivo já existir.

Se Update for especificado, o arquivo será aberto com System.IO.FileMode.OpenOrCreate.

Se o arquivo existir e for um arquivo zip, suas entradas ficarão acessíveis e poderão ser modificadas e novas entradas poderão ser criadas.

Se o arquivo existir e não for um arquivo zip, um InvalidDataException será gerado.

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

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

Especificar um valor diferente de null for entryNameEncoding é desencorajado. No entanto, isso pode ser necessário para interoperabilidade com ferramentas de arquivo zip e bibliotecas que não dão suporte correto à codificação UTF-8 para nomes de entrada ou comentários.

Esse valor é usado da seguinte maneira:

  • Lendo (abrindo) arquivos de arquivo ZIP:
    • Se entryNameEncoding não for especificado (== null):
      • Para entradas em que o sinalizador de codificação de idioma (EFS) no sinalizador de bits de finalidade geral do cabeçalho de arquivo local não está definido, use a página de código padrão do sistema atual (Encoding.Default) para decodificar o nome de entrada e o comentário.
      • Para entradas em que o sinalizador de codificação de idioma (EFS) no sinalizador de bits de finalidade geral do cabeçalho do arquivo local está definido, use UTF-8 (Encoding.UTF8) para decodificar o nome de entrada e o comentário.
    • Se entryNameEncoding for especificado (!= null):
      • Para entradas em que o sinalizador de codificação de idioma (EFS) no sinalizador de bits de finalidade geral do cabeçalho do arquivo local não está definido, use o especificado entryNameEncoding para decodificar o nome de entrada e o comentário.
      • Para entradas em que o sinalizador de codificação de idioma (EFS) no sinalizador de bits de finalidade geral do cabeçalho do arquivo local está definido, use UTF-8 (Encoding.UTF8) para decodificar o nome de entrada e o comentário.
  • Gravando (salvando) arquivos de arquivo ZIP:
    • Se entryNameEncoding não for especificado (== null):
      • Para nomes de entrada e comentários que contêm caracteres fora do intervalo ASCII, o sinalizador de codificação de idioma (EFS) será definido no sinalizador de bits de finalidade geral do cabeçalho do arquivo local, e UTF-8 (Encoding.UTF8) será usado para codificar o nome da entrada e comentar em bytes.
      • Para nomes de entrada e comentários que não contêm caracteres fora do intervalo ASCII, o sinalizador de codificação de idioma (EFS) não será definido no sinalizador de bits de finalidade geral do cabeçalho de arquivo local, e a página de código padrão do sistema atual (Encoding.Default) será usada para codificar os nomes de entrada e comentários em bytes.
    • Se entryNameEncoding for especificado (!= null):
      • O especificado entryNameEncoding sempre será usado para codificar os nomes de entrada e os comentários em bytes.
      • O sinalizador de codificação de idioma (EFS) no sinalizador de bits de finalidade geral do cabeçalho de arquivo local será definido se e somente se o especificado entryNameEncoding for uma codificação UTF-8.
  • Codificações Unicode diferentes de UTF-8 não podem ser usadas para o entryNameEncoding, caso contrário, uma ArgumentException é gerada.

    Aplica-se a