ZipFile.OpenAsync 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 |
|---|---|
| OpenAsync(String, ZipArchiveMode, CancellationToken) |
Abre de forma assíncrona um |
| OpenAsync(String, ZipArchiveMode, Encoding, CancellationToken) |
Abre de forma assíncrona um |
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:
- Se
entryNameEncodingnã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.
- 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 (
- Se
entryNameEncodingfor 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
entryNameEncodingpara 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.
- 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
- Se
entryNameEncodingnã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.
- 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 (
- Se
entryNameEncodingfor especificado (!= null):- O especificado
entryNameEncodingsempre 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
entryNameEncodingfor uma codificação UTF-8.
- O especificado
Codificações Unicode diferentes de UTF-8 não podem ser usadas para o entryNameEncoding, caso contrário, uma ArgumentException é gerada.