ZipFile.Open 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.
Abre um arquivo zip no caminho e modo especificados.
Sobrecargas
Open(String, ZipArchiveMode, Encoding) |
Abre um arquivo zip no caminho especificado, no modo especificado e usando a codificação de caractere especificado para nomes de entrada. |
Open(String, ZipArchiveMode) |
Abre um arquivo zip no caminho e modo especificados. |
Open(String, ZipArchiveMode, Encoding)
- Origem:
- ZipFile.Create.cs
- Origem:
- ZipFile.Create.cs
- Origem:
- ZipFile.Create.cs
Abre um arquivo zip no caminho especificado, no modo especificado e usando a codificação de caractere especificado para nomes de entrada.
public:
static System::IO::Compression::ZipArchive ^ Open(System::String ^ archiveFileName, System::IO::Compression::ZipArchiveMode mode, System::Text::Encoding ^ entryNameEncoding);
public static System.IO.Compression.ZipArchive Open (string archiveFileName, System.IO.Compression.ZipArchiveMode mode, System.Text.Encoding entryNameEncoding);
public static System.IO.Compression.ZipArchive Open (string archiveFileName, System.IO.Compression.ZipArchiveMode mode, System.Text.Encoding? entryNameEncoding);
static member Open : string * System.IO.Compression.ZipArchiveMode * System.Text.Encoding -> System.IO.Compression.ZipArchive
Public Shared Function Open (archiveFileName As String, mode As ZipArchiveMode, entryNameEncoding As Encoding) As ZipArchive
Parâmetros
- archiveFileName
- String
O caminho para o arquivo morto a ser aberto, especificado como um caminho relativo ou absoluto. Um caminho relativo é interpretado como relativo ao diretório de trabalho atual.
- 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 ser usada ao ler ou gravar nomes de entrada nesse arquivo. Especifique um valor para esse parâmetro somente quando uma codificação for necessária para a interoperabilidade com ferramentas de arquivo zip e bibliotecas que não dão suporte à codificação UTF-8 para nomes de entrada.
Retornos
O arquivo zip aberto.
Exceções
archiveFileName
é Empty, contém somente espaços em branco ou, pelo menos, um caractere inválido.
- ou -
entryNameEncoding
é definido com uma codificação Unicode diferente de UTF-8.
archiveFileName
é null
.
Em archiveFileName
, o caminho especificado, o nome de arquivo, ou ambos excedem o tamanho máximo definido pelo sistema.
archiveFileName
é inválido ou não existe (por exemplo, ele está em uma unidade não mapeada).
archiveFileName
não pôde ser aberto.
- ou -
mode
é definido como Create, mas o arquivo especificado em archiveFileName
já existe.
- ou -
Ocorreu um erro de E/S não especificado ao abrir o arquivo.
archiveFileName
especifica um diretório.
- ou -
O chamador não tem a permissão necessária para acessar o arquivo especificado em archiveFileName
.
mode
especifica um valor inválido.
mode
é definido como Read, mas o arquivo especificado em archiveFileName
não foi encontrado.
archiveFileName
contém um formato inválido.
archiveFileName
não pôde ser interpretado como um arquivo zip.
- ou -
mode
é Update, mas uma entrada está ausente ou corrompida e não pode ser lida.
- ou -
mode
é Update, mas uma entrada é muito grande para caber na memória.
Comentários
Quando você define o mode
parâmetro Readcomo , o arquivo morto é aberto com FileMode.Open como o valor do modo de arquivo. Se o arquivo morto não existir, uma FileNotFoundException exceção será gerada. Definir o mode
parâmetro como Read é equivalente a chamar o OpenRead método .
Quando você define o mode
parâmetro Createcomo , o arquivo morto é aberto com FileMode.CreateNew como o valor do modo de arquivo. Se o arquivo morto já existir, um IOException será gerado.
Quando você define o mode
parâmetro Updatecomo , o arquivo morto é aberto com FileMode.OpenOrCreate como o valor do modo de arquivo. Se o arquivo existir, ele será aberto. As entradas existentes podem ser modificadas e novas entradas podem ser criadas. Se o arquivo morto não existir, um novo arquivo será criado; no entanto, criar um arquivo zip no Update modo não é tão eficiente quanto criá-lo no Create modo .
Quando você abre um arquivo zip para leitura e entryNameEncoding
é definido null
como , os nomes de entrada são decodificados de acordo com as seguintes regras:
Quando o sinalizador de codificação de idioma (no sinalizador de bits de uso geral do cabeçalho do arquivo local) não é definido, a página de código padrão do sistema atual é usada para decodificar o nome da entrada.
Quando o sinalizador de codificação de idioma é definido, UTF-8 é usado para decodificar o nome da entrada.
Quando você abre um arquivo zip para leitura e entryNameEncoding
é definido como um valor diferente null
de , os nomes de entrada são decodificados de acordo com as seguintes regras:
Quando o sinalizador de codificação de idioma não está definido, o especificado
entryNameEncoding
é usado para decodificar o nome da entrada.Quando o sinalizador de codificação de idioma é definido, UTF-8 é usado para decodificar o nome da entrada.
Quando você grava em arquivos de arquivo morto e entryNameEncoding
é definido null
como , os nomes de entrada são codificados de acordo com as seguintes regras:
Para nomes de entrada que contêm caracteres fora do intervalo ASCII, o sinalizador de codificação de idioma é definido e os nomes de entrada são codificados usando UTF-8.
Para nomes de entrada que contêm apenas caracteres ASCII, o sinalizador de codificação de idioma não está definido e os nomes de entrada são codificados usando a página de código padrão do sistema atual.
Quando você grava em arquivos de arquivo morto e entryNameEncoding
é definido como um valor diferente de null
, o especificado entryNameEncoding
é usado para codificar os nomes de entrada em bytes. O sinalizador de codificação de idioma (no sinalizador de bits de uso geral do cabeçalho do arquivo local) é definido somente quando a codificação especificada é uma codificação UTF-8.
Aplica-se a
Open(String, ZipArchiveMode)
- Origem:
- ZipFile.Create.cs
- Origem:
- ZipFile.Create.cs
- Origem:
- ZipFile.Create.cs
Abre um arquivo zip no caminho e modo especificados.
public:
static System::IO::Compression::ZipArchive ^ Open(System::String ^ archiveFileName, System::IO::Compression::ZipArchiveMode mode);
public static System.IO.Compression.ZipArchive Open (string archiveFileName, System.IO.Compression.ZipArchiveMode mode);
static member Open : string * System.IO.Compression.ZipArchiveMode -> System.IO.Compression.ZipArchive
Public Shared Function Open (archiveFileName As String, mode As ZipArchiveMode) As ZipArchive
Parâmetros
- archiveFileName
- String
O caminho para o arquivo morto a ser aberto, especificado como um caminho relativo ou absoluto. Um caminho relativo é interpretado como relativo ao diretório de trabalho atual.
- mode
- ZipArchiveMode
Um dos valores de enumeração que especifica as ações permitidas nas entradas do arquivo aberto.
Retornos
O arquivo zip aberto.
Exceções
archiveFileName
é Empty, contém somente espaços em branco ou, pelo menos, um caractere inválido.
archiveFileName
é null
.
Em archiveFileName
, o caminho especificado, o nome de arquivo, ou ambos excedem o tamanho máximo definido pelo sistema.
archiveFileName
é inválido ou não existe (por exemplo, ele está em uma unidade não mapeada).
archiveFileName
não pôde ser aberto.
- ou -
mode
é definido como Create, mas o arquivo especificado em archiveFileName
já existe.
- ou -
Ocorreu um erro de E/S não especificado ao abrir o arquivo.
archiveFileName
especifica um diretório.
- ou -
O chamador não tem a permissão necessária para acessar o arquivo especificado em archiveFileName
.
mode
especifica um valor inválido.
mode
é definido como Read, mas o arquivo especificado em archiveFileName
não foi encontrado.
archiveFileName
contém um formato inválido.
archiveFileName
não pôde ser interpretado como um arquivo zip.
- ou -
mode
é Update, mas uma entrada está ausente ou corrompida e não pode ser lida.
- ou -
mode
é Update, mas uma entrada é muito grande para caber na memória.
Exemplos
O exemplo a seguir mostra como abrir um arquivo zip no modo de atualização e adicionar uma entrada ao arquivo morto.
using System;
using System.IO;
using System.IO.Compression;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
string zipPath = @"c:\users\exampleuser\start.zip";
string extractPath = @"c:\users\exampleuser\extract";
string newFile = @"c:\users\exampleuser\NewFile.txt";
using (ZipArchive archive = ZipFile.Open(zipPath, ZipArchiveMode.Update))
{
archive.CreateEntryFromFile(newFile, "NewEntry.txt");
archive.ExtractToDirectory(extractPath);
}
}
}
}
open System.IO.Compression
let zipPath = @"c:\users\exampleuser\start.zip"
let extractPath = @"c:\users\exampleuser\extract"
let newFile = @"c:\users\exampleuser\NewFile.txt"
do
use archive = ZipFile.Open(zipPath, ZipArchiveMode.Update)
archive.CreateEntryFromFile(newFile, "NewEntry.txt") |> ignore
archive.ExtractToDirectory extractPath
Imports System.IO
Imports System.IO.Compression
Module Module1
Sub Main()
Dim zipPath As String = "c:\users\exampleuser\end.zip"
Dim extractPath As String = "c:\users\exampleuser\extract"
Dim newFile As String = "c:\users\exampleuser\NewFile.txt"
Using archive As ZipArchive = ZipFile.Open(zipPath, ZipArchiveMode.Update)
archive.CreateEntryFromFile(newFile, "NewEntry.txt", CompressionLevel.Fastest)
archive.ExtractToDirectory(extractPath)
End Using
End Sub
End Module
Comentários
Quando você define o mode
parâmetro Readcomo , o arquivo morto é aberto com Open na FileMode enumeração como o valor do modo de arquivo. Se o arquivo morto não existir, uma FileNotFoundException exceção será gerada. Definir o mode
parâmetro como Read é equivalente a chamar o OpenRead método .
Quando você define o mode
parâmetro Createcomo , o arquivo morto é aberto com FileMode.CreateNew como o valor do modo de arquivo. Se o arquivo morto já existir, um IOException será gerado.
Quando você define o mode
parâmetro Updatecomo , o arquivo morto é aberto com FileMode.OpenOrCreate como o valor do modo de arquivo. Se o arquivo existir, ele será aberto. As entradas existentes podem ser modificadas e novas entradas podem ser criadas. Se o arquivo morto não existir, um novo arquivo será criado; no entanto, criar um arquivo zip no Update modo não é tão eficiente quanto criá-lo no Create modo .