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