ZipFile.Open ZipFile.Open ZipFile.Open ZipFile.Open Method

Definice

Otevře archiv zip v zadané cestě a v zadaném režimu.Opens a zip archive at the specified path and in the specified mode.

Přetížení

Open(String, ZipArchiveMode) Open(String, ZipArchiveMode) Open(String, ZipArchiveMode) Open(String, ZipArchiveMode)

Otevře archiv zip v zadané cestě a v zadaném režimu.Opens a zip archive at the specified path and in the specified mode.

Open(String, ZipArchiveMode, Encoding) Open(String, ZipArchiveMode, Encoding) Open(String, ZipArchiveMode, Encoding) Open(String, ZipArchiveMode, Encoding)

Otevře archiv zip v zadané cestě, v zadaném režimu a pomocí zadaného kódování znaků pro zadání názvů.Opens a zip archive at the specified path, in the specified mode, and by using the specified character encoding for entry names.

Open(String, ZipArchiveMode) Open(String, ZipArchiveMode) Open(String, ZipArchiveMode) Open(String, ZipArchiveMode)

Otevře archiv zip v zadané cestě a v zadaném režimu.Opens a zip archive at the specified path and in the specified mode.

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

Parametry

archiveFileName
String String String String

Cesta k archivu, která se má otevřít, zadaná jako relativní nebo absolutní cesta.The path to the archive to open, specified as a relative or absolute path. Relativní cesta je interpretována jako relativní k aktuálnímu pracovnímu adresáři.A relative path is interpreted as relative to the current working directory.

mode
ZipArchiveMode ZipArchiveMode ZipArchiveMode ZipArchiveMode

Jedna z hodnot výčtu, která určuje akce, které jsou povoleny u položek v otevřeném archivu.One of the enumeration values that specifies the actions which are allowed on the entries in the opened archive.

Návraty

Otevřený archiv zip.The opened zip archive.

Výjimky

archiveFileNameje Empty, obsahuje pouze prázdné znaky nebo obsahuje nejméně jeden neplatný znak.archiveFileName is Empty, contains only white space, or contains at least one invalid character.

V archiveFileNamesystému je zadaná cesta, název souboru nebo obojí větší než maximální délka definovaná systémem.In archiveFileName, the specified path, file name, or both exceed the system-defined maximum length.

archiveFileNameje neplatný nebo neexistuje (například se nachází na nemapované jednotce).archiveFileName is invalid or does not exist (for example, it is on an unmapped drive).

archiveFileNameNelze otevřít.archiveFileName could not be opened.

-nebo--or- modeje nastaven na Create, ale soubor zadaný v archiveFileName již existuje.mode is set to Create, but the file specified in archiveFileName already exists.

archiveFileNameUrčuje adresář.archiveFileName specifies a directory.

-nebo--or- Volající nemá požadovaná oprávnění pro přístup k souboru zadanému v archiveFileName.The caller does not have the required permission to access the file specified in archiveFileName.

modeje nastaven na Read, ale soubor určený v archiveFileName souboru nebyl nalezen.mode is set to Read, but the file specified in archiveFileName is not found.

archiveFileNameobsahuje neplatný formát.archiveFileName contains an invalid format.

archiveFileNamenelze interpretovat jako archiv zip.archiveFileName could not be interpreted as a zip archive.

-nebo--or- modeje Update, ale položka chybí nebo je poškozená a nedá se přečíst.mode is Update, but an entry is missing or corrupt and cannot be read.

-nebo--or- modeje Update, ale položka je příliš velká, aby se vešla do paměti.mode is Update, but an entry is too large to fit into memory.

Příklady

Následující příklad ukazuje, jak otevřít archiv zip v režimu aktualizace a přidat položku do archivu.The following example shows how to open a zip archive in the update mode and add an entry to the archive.

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);
            } 
        }
    }
}
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

Poznámky

Když nastavíte mode parametr na Read Open ,FileMode je archiv otevřen s z výčtu jako hodnota režimu souboru.When you set the mode parameter to Read, the archive is opened with Open from the FileMode enumeration as the file mode value. Pokud archiv neexistuje, FileNotFoundException je vyvolána výjimka.If the archive does not exist, a FileNotFoundException exception is thrown. Nastavení parametru na Read hodnotu je ekvivalentní volání metody.OpenRead modeSetting the mode parameter to Read is equivalent to calling the OpenRead method.

Při nastavení mode parametru na Createje soubor archivu otevřen FileMode.CreateNew jako hodnota režimu souboru.When you set the mode parameter to Create, the archive is opened with FileMode.CreateNew as the file mode value. Pokud archiv již existuje, IOException je vyvolána výjimka.If the archive already exists, an IOException is thrown.

Při nastavení mode parametru na Updateje soubor archivu otevřen FileMode.OpenOrCreate jako hodnota režimu souboru.When you set the mode parameter to Update, the archive is opened with FileMode.OpenOrCreate as the file mode value. Pokud archiv existuje, je otevřen.If the archive exists, it is opened. Existující položky lze upravit a lze vytvořit nové položky.The existing entries can be modified and new entries can be created. Pokud archiv neexistuje, vytvoří se nový archiv. vytvoření archivu zip v Update režimu ale není tak efektivní jako vytvoření v Create režimu.If the archive does not exist, a new archive is created; however, creating a zip archive in Update mode is not as efficient as creating it in Create mode.

Open(String, ZipArchiveMode, Encoding) Open(String, ZipArchiveMode, Encoding) Open(String, ZipArchiveMode, Encoding) Open(String, ZipArchiveMode, Encoding)

Otevře archiv zip v zadané cestě, v zadaném režimu a pomocí zadaného kódování znaků pro zadání názvů.Opens a zip archive at the specified path, in the specified mode, and by using the specified character encoding for entry names.

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);
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

Parametry

archiveFileName
String String String String

Cesta k archivu, která se má otevřít, zadaná jako relativní nebo absolutní cesta.The path to the archive to open, specified as a relative or absolute path. Relativní cesta je interpretována jako relativní k aktuálnímu pracovnímu adresáři.A relative path is interpreted as relative to the current working directory.

mode
ZipArchiveMode ZipArchiveMode ZipArchiveMode ZipArchiveMode

Jedna z hodnot výčtu, která určuje akce, které jsou povoleny u položek v otevřeném archivu.One of the enumeration values that specifies the actions that are allowed on the entries in the opened archive.

entryNameEncoding
Encoding Encoding Encoding Encoding

Kódování, které má být použito při čtení nebo zápisu názvů položek v tomto archivu.The encoding to use when reading or writing entry names in this archive. Zadejte hodnotu pro tento parametr pouze v případě, že je vyžadováno kódování pro interoperabilitu s nástroji a knihovnami archivu zip, které pro vstupní názvy nepodporují kódování UTF-8.Specify a value for this parameter only when an encoding is required for interoperability with zip archive tools and libraries that do not support UTF-8 encoding for entry names.

Návraty

Otevřený archiv zip.The opened zip archive.

Výjimky

archiveFileNameje Empty, obsahuje pouze prázdné znaky nebo obsahuje nejméně jeden neplatný znak.archiveFileName is Empty, contains only white space, or contains at least one invalid character.

-nebo--or- entryNameEncodingje nastaveno na kódování Unicode jiné než UTF-8.entryNameEncoding is set to a Unicode encoding other than UTF-8.

V archiveFileNamesystému je zadaná cesta, název souboru nebo obojí větší než maximální délka definovaná systémem.In archiveFileName, the specified path, file name, or both exceed the system-defined maximum length.

archiveFileNameje neplatný nebo neexistuje (například se nachází na nemapované jednotce).archiveFileName is invalid or does not exist (for example, it is on an unmapped drive).

archiveFileNameNelze otevřít.archiveFileName could not be opened.

-nebo--or- modeje nastaven na Create, ale soubor zadaný v archiveFileName již existuje.mode is set to Create, but the file specified in archiveFileName already exists.

archiveFileNameUrčuje adresář.archiveFileName specifies a directory.

-nebo--or- Volající nemá požadovaná oprávnění pro přístup k souboru zadanému v archiveFileName.The caller does not have the required permission to access the file specified in archiveFileName.

modeje nastaven na Read, ale soubor určený v archiveFileName souboru nebyl nalezen.mode is set to Read, but the file specified in archiveFileName is not found.

archiveFileNameobsahuje neplatný formát.archiveFileName contains an invalid format.

archiveFileNamenelze interpretovat jako archiv zip.archiveFileName could not be interpreted as a zip archive.

-nebo--or- modeje Update, ale položka chybí nebo je poškozená a nedá se přečíst.mode is Update, but an entry is missing or corrupt and cannot be read.

-nebo--or- modeje Update, ale položka je příliš velká, aby se vešla do paměti.mode is Update, but an entry is too large to fit into memory.

Poznámky

Při nastavení mode parametru na Readje soubor archivu otevřen FileMode.Open jako hodnota režimu souboru.When you set the mode parameter to Read, the archive is opened with FileMode.Open as the file mode value. Pokud archiv neexistuje, FileNotFoundException je vyvolána výjimka.If the archive does not exist, a FileNotFoundException exception is thrown. Nastavení parametru na Read hodnotu je ekvivalentní volání metody.OpenRead modeSetting the mode parameter to Read is equivalent to calling the OpenRead method.

Při nastavení mode parametru na Createje soubor archivu otevřen FileMode.CreateNew jako hodnota režimu souboru.When you set the mode parameter to Create, the archive is opened with FileMode.CreateNew as the file mode value. Pokud archiv již existuje, IOException je vyvolána výjimka.If the archive already exists, an IOException is thrown.

Při nastavení mode parametru na Updateje soubor archivu otevřen FileMode.OpenOrCreate jako hodnota režimu souboru.When you set the mode parameter to Update, the archive is opened with FileMode.OpenOrCreate as the file mode value. Pokud archiv existuje, je otevřen.If the archive exists, it is opened. Existující položky lze upravit a lze vytvořit nové položky.The existing entries can be modified and new entries can be created. Pokud archiv neexistuje, vytvoří se nový archiv. vytvoření archivu zip v Update režimu ale není tak efektivní jako vytvoření v Create režimu.If the archive does not exist, a new archive is created; however, creating a zip archive in Update mode is not as efficient as creating it in Create mode.

Když otevřete soubor archivu zip pro čtení a entryNameEncoding nastavíte na null, budou se názvy položek dekódovat podle následujících pravidel:When you open a zip archive file for reading and entryNameEncoding is set to null, entry names are decoded according to the following rules:

  • Pokud není nastaven příznak kódování jazyka (v poli příznak bitového pro obecné použití v hlavičce místního souboru), použije se k dekódování názvu položky aktuální výchozí systémová znaková stránka.When the language encoding flag (in the general-purpose bit flag of the local file header) is not set, the current system default code page is used to decode the entry name.

  • Pokud je nastaven příznak kódování jazyka, použije se k dekódování názvu položky znak UTF-8.When the language encoding flag is set, UTF-8 is used to decode the entry name.

Když otevřete soubor archivu zip pro čtení a entryNameEncoding nastavíte jinou hodnotu než null, názvy položek se dekóduje podle následujících pravidel:When you open a zip archive file for reading and entryNameEncoding is set to a value other than null, entry names are decoded according to the following rules:

  • Pokud není nastaven příznak kódování jazyka, je k dekódování entryNameEncoding názvu položky použit parametr.When the language encoding flag is not set, the specified entryNameEncoding is used to decode the entry name.

  • Pokud je nastaven příznak kódování jazyka, použije se k dekódování názvu položky znak UTF-8.When the language encoding flag is set, UTF-8 is used to decode the entry name.

Když zapisujete do souborů archivu entryNameEncoding a je nastavená na null, jsou názvy záznamů kódované podle následujících pravidel:When you write to archive files and entryNameEncoding is set to null, entry names are encoded according to the following rules:

  • U názvů zadání, které obsahují znaky mimo rozsah ASCII, je nastaven příznak kódování jazyka a vstupní názvy jsou kódovány pomocí kódování UTF-8.For entry names that contain characters outside the ASCII range, the language encoding flag is set, and entry names are encoded by using UTF-8.

  • U názvů zadání, které obsahují pouze znaky ASCII, není nastaven příznak kódování jazyka a názvy záznamů jsou zakódovány pomocí výchozí systémové znakové stránky.For entry names that contain only ASCII characters, the language encoding flag is not set, and entry names are encoded by using the current system default code page.

Když zapisujete do souborů archivu entryNameEncoding a je nastavená na jinou hodnotu nullnež, zadaná entryNameEncoding hodnota se použije ke kódování názvů položek do bajtů.When you write to archive files and entryNameEncoding is set to a value other than null, the specified entryNameEncoding is used to encode the entry names into bytes. Příznak kódování jazyka (v případě bitového příznaku pro obecné účely v hlavičce místního souboru) je nastaven pouze v případě, že zadané kódování je kódování UTF-8.The language encoding flag (in the general-purpose bit flag of the local file header) is set only when the specified encoding is a UTF-8 encoding.

Platí pro