ZipFile.Open 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.
Abre um arquivo zip no caminho especificado e no modo especificado.
Sobrecargas
| Name | Description |
|---|---|
| Open(String, ZipArchiveMode) |
Abre um arquivo zip no caminho especificado e no modo especificado. |
| Open(String, ZipArchiveMode, Encoding) |
Abre um arquivo zip no caminho especificado, no modo especificado, e usando a codificação de caracteres especificada para nomes de entrada e comentários. |
Open(String, ZipArchiveMode)
- Origem:
- ZipFile.Create.cs
- Origem:
- ZipFile.Create.cs
- Origem:
- ZipFile.Create.cs
- Origem:
- ZipFile.Create.cs
- Origem:
- ZipFile.Create.cs
Abre um arquivo zip no caminho especificado e no modo especificado.
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 a abrir, 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.
Devoluções
O arquivo zip aberto.
Exceções
archiveFileName é Empty, contém apenas espaço em branco, ou contém pelo menos um carácter inválido.
archiveFileName é null.
Em archiveFileName, o caminho, nome do ficheiro, ou ambos especificados excedem o comprimento máximo definido pelo sistema.
archiveFileName é inválido ou não existe (por exemplo, está num disco não mapeado).
archiveFileName não podiam ser abertos.
-ou-
mode está definido como Create, mas o ficheiro especificado em archiveFileName já existe.
-ou-
Um erro de E/S não especificado ocorreu durante a abertura do ficheiro.
archiveFileName especifica um diretório.
-ou-
O chamador não tem a permissão necessária para aceder ao ficheiro especificado em archiveFileName.
mode especifica um valor inválido.
mode está definido para Read, mas o ficheiro especificado em archiveFileName não é encontrado.
archiveFileName contém um formato inválido.
archiveFileName não pode ser interpretado como um arquivo postal.
-ou-
mode é Update, mas uma entrada está em falta ou está corrompida e não pode ser lida.
-ou-
mode é Update, mas uma entrada é demasiado grande para caber na memória.
Exemplos
O exemplo seguinte mostra como abrir um arquivo zip no modo de atualização e adicionar uma entrada ao arquivo.
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
Observações
Quando defines o mode parâmetro para Read, o arquivo é aberto com Open from the FileMode enumeration como valor do modo de ficheiro. Se o arquivo não existir, é lançada uma FileNotFoundException exceção. Definir o mode parâmetro para Read é equivalente a chamar o OpenRead método.
Quando defines o mode parâmetro para Create, o arquivo é aberto com FileMode.CreateNew como valor do modo ficheiro. Se o arquivo já existe, an IOException é lançado.
Quando defines o mode parâmetro para Update, o arquivo é aberto com FileMode.OpenOrCreate como valor do modo ficheiro. Se o arquivo existir, está aberto. As entradas existentes podem ser modificadas e novas entradas podem ser criadas. Se o arquivo não existir, é criado um novo arquivo; No entanto, criar um arquivo zip no Update modo não é tão eficiente como criá-lo no Create modo.
Aplica-se a
Open(String, ZipArchiveMode, Encoding)
- Origem:
- ZipFile.Create.cs
- Origem:
- ZipFile.Create.cs
- 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 caracteres especificada para nomes de entrada e comentários.
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 a abrir, 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 usar ao ler ou escrever nomes de entradas e comentários neste arquivo. Especifique um valor para este parâmetro apenas quando for necessária uma codificação para interoperabilidade com ferramentas de arquivo zip e bibliotecas que não suportem codificação UTF-8 para nomes de entradas ou comentários.
Devoluções
O arquivo zip aberto.
Exceções
archiveFileName é Empty, contém apenas espaço em branco, ou contém pelo menos um carácter inválido.
-ou-
entryNameEncoding está definido para uma codificação Unicode diferente da UTF-8.
archiveFileName é null.
Em archiveFileName, o caminho, nome do ficheiro, ou ambos especificados excedem o comprimento máximo definido pelo sistema.
archiveFileName é inválido ou não existe (por exemplo, está num disco não mapeado).
archiveFileName não podiam ser abertos.
-ou-
mode está definido como Create, mas o ficheiro especificado em archiveFileName já existe.
-ou-
Um erro de E/S não especificado ocorreu durante a abertura do ficheiro.
archiveFileName especifica um diretório.
-ou-
O chamador não tem a permissão necessária para aceder ao ficheiro especificado em archiveFileName.
mode especifica um valor inválido.
mode está definido para Read, mas o ficheiro especificado em archiveFileName não é encontrado.
archiveFileName contém um formato inválido.
archiveFileName não pode ser interpretado como um arquivo postal.
-ou-
mode é Update, mas uma entrada está em falta ou está corrompida e não pode ser lida.
-ou-
mode é Update, mas uma entrada é demasiado grande para caber na memória.
Observações
Quando defines o mode parâmetro para Read, o arquivo é aberto com FileMode.Open como valor do modo ficheiro. Se o arquivo não existir, é lançada uma FileNotFoundException exceção. Definir o mode parâmetro para Read é equivalente a chamar o OpenRead método.
Quando defines o mode parâmetro para Create, o arquivo é aberto com FileMode.CreateNew como valor do modo ficheiro. Se o arquivo já existe, an IOException é lançado.
Quando defines o mode parâmetro para Update, o arquivo é aberto com FileMode.OpenOrCreate como valor do modo ficheiro. Se o arquivo existir, está aberto. As entradas existentes podem ser modificadas e novas entradas podem ser criadas. Se o arquivo não existir, é criado um novo arquivo; No entanto, criar um arquivo zip no Update modo não é tão eficiente como criá-lo no Create modo.
Quando abre um ficheiro zip para leitura e entryNameEncoding está definido para null, os nomes das entradas e comentários são decodificados de acordo com as seguintes regras:
- Quando o flag de codificação da linguagem (no flag de bit de uso geral do cabeçalho local do ficheiro) não está definido, a página de código padrão do sistema atual é usada para decodificar o nome da entrada e o comentário.
- Quando o flag de codificação da linguagem é definido, o UTF-8 é usado para decodificar o nome da entrada e o comentário.
Quando abre um ficheiro zip de arquivo para leitura e entryNameEncoding está definido para um valor diferente de null, os nomes das entradas e comentários são decodificados de acordo com as seguintes regras:
- Quando o flag de codificação da linguagem não está definido, o especificado
entryNameEncodingé usado para decifrar o nome da entrada e o comentário. - Quando o flag de codificação da linguagem é definido, o UTF-8 é usado para decodificar o nome da entrada e o comentário.
Quando escreve em ficheiros de arquivo e entryNameEncoding está definido para null, os nomes das entradas e comentários são codificados de acordo com as seguintes regras:
- Para nomes de entradas ou comentários que contenham caracteres fora do intervalo ASCII, a bandeira de codificação da linguagem é definida, e os nomes das entradas e comentários são codificados usando UTF-8.
- Para nomes de entradas ou comentários que contenham apenas caracteres ASCII, a bandeira de codificação da linguagem não está definida, e os nomes das entradas e comentários são codificados usando a página de códigos padrão do sistema atual.
Quando escreve em ficheiros de arquivo e entryNameEncoding está definido para um valor diferente de null, o especificado entryNameEncoding é usado para codificar os nomes das entradas e comentários em bytes. O flag de codificação da linguagem (no flag de bit de uso geral do cabeçalho local do ficheiro) é definido apenas quando a codificação especificada é uma codificação UTF-8.