Sdílet prostřednictvím


ZipFile.Open Metoda

Definice

Otevře archiv zip v zadané cestě a v zadaném režimu.

Přetížení

Open(String, ZipArchiveMode, Encoding)

Otevře archiv zip v zadané cestě, v zadaném režimu a pomocí kódování zadaných znaků pro názvy položek.

Open(String, ZipArchiveMode)

Otevře archiv zip v zadané cestě a v zadaném režimu.

Open(String, ZipArchiveMode, Encoding)

Zdroj:
ZipFile.Create.cs
Zdroj:
ZipFile.Create.cs
Zdroj:
ZipFile.Create.cs

Otevře archiv zip v zadané cestě, v zadaném režimu a pomocí kódování zadaných znaků pro názvy položek.

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

Parametry

archiveFileName
String

Cesta k archivu, který se má otevřít, zadaná jako relativní nebo absolutní cesta. Relativní cesta je interpretována jako relativní k aktuálnímu pracovnímu adresáři.

mode
ZipArchiveMode

Jedna z hodnot výčtu, která určuje akce, které jsou povoleny u položek v otevřeném archivu.

entryNameEncoding
Encoding

Kódování, které se má použít při čtení nebo zápisu názvů položek v tomto archivu. Hodnotu tohoto parametru zadejte pouze v případě, že je kódování vyžadováno pro interoperabilitu s archivačními nástroji a knihovnami zip, které nepodporují kódování UTF-8 pro názvy položek.

Návraty

Otevřený archiv zip.

Výjimky

archiveFileName is Empty, obsahuje pouze prázdné znaky nebo obsahuje alespoň jeden neplatný znak.

-nebo-

entryNameEncoding je nastavená na kódování Unicode jiné než UTF-8.

archiveFileName je null.

V archiveFileNamesystému zadaná cesta, název souboru nebo obojí překračují maximální délku definovanou systémem.

archiveFileName je neplatný nebo neexistuje (například se nachází na nenamapované jednotce).

archiveFileName nelze otevřít.

-nebo-

mode je nastavená na Create, ale soubor zadaný v archiveFileName souboru již existuje.

-nebo-

Při otevírání souboru došlo k nespecifikované vstupně-výstupní chybě.

archiveFileName určuje adresář.

-nebo-

Volající nemá požadovaná oprávnění pro přístup k souboru zadanému v archiveFileName.

mode určuje neplatnou hodnotu.

mode je nastavená na Read, ale soubor zadaný v archiveFileName souboru nebyl nalezen.

archiveFileName obsahuje neplatný formát.

archiveFileName nelze interpretovat jako archiv zip.

-nebo-

mode je Update, ale položka chybí nebo je poškozená a nelze ji přečíst.

-nebo-

mode je Update, ale položka je příliš velká, aby se nevešla do paměti.

Poznámky

Když nastavíte mode parametr na Read, archiv se otevře s FileMode.Open hodnotou režimu souboru. Pokud archiv neexistuje, vyvolá se FileNotFoundException výjimka. Nastavení parametru mode na hodnotu Read je ekvivalentem volání OpenRead metody .

Když nastavíte mode parametr na Create, archiv se otevře s FileMode.CreateNew hodnotou režimu souboru. Pokud archiv již existuje, IOException je vyvolán .

Když nastavíte mode parametr na Update, archiv se otevře s FileMode.OpenOrCreate hodnotou režimu souboru. Pokud archiv existuje, otevře se. Existující položky lze upravovat a vytvářet nové položky. Pokud archiv neexistuje, je vytvořen nový archiv; Vytvoření archivu ZIP v Update režimu však není tak efektivní jako jeho vytvoření v Create režimu.

Když otevřete soubor archivu ZIP pro čtení a entryNameEncoding je nastaven na null, názvy položek jsou dekódovány podle následujících pravidel:

  • Pokud není nastaven příznak kódování jazyka (v bitovém příznaku místního souboru pro obecné účely), použije se k dekódování názvu položky aktuální výchozí znaková stránka systému.

  • Při nastavení příznaku kódování jazyka se k dekódování názvu položky použije UTF-8.

Když otevřete soubor zip archivu pro čtení a entryNameEncoding je nastavena na jinou hodnotu než null, názvy položek jsou dekódovány podle následujících pravidel:

  • Pokud není nastaven příznak kódování jazyka, použije se k dekódování názvu položky zadaný entryNameEncoding znak .

  • Při nastavení příznaku kódování jazyka se k dekódování názvu položky použije UTF-8.

Když zapisujete do archivačních souborů a entryNameEncoding je nastavená na null, názvy položek se kódují podle následujících pravidel:

  • Pro názvy položek, které obsahují znaky mimo rozsah ASCII, je nastaven příznak kódování jazyka a názvy položek jsou kódovány pomocí UTF-8.

  • U názvů položek, které obsahují pouze znaky ASCII, není nastaven příznak kódování jazyka a názvy položek jsou kódovány pomocí aktuální výchozí znakové stránky systému.

Když zapisujete do archivačních souborů a entryNameEncoding je nastavená na jinou hodnotu než null, použije se zadaná entryNameEncoding hodnota ke kódování názvů položek do bajtů. Příznak kódování jazyka (v bitovém příznaku místního souboru pro obecné účely) je nastaven pouze v případech, kdy je zadané kódování kódování UTF-8.

Platí pro

Open(String, ZipArchiveMode)

Zdroj:
ZipFile.Create.cs
Zdroj:
ZipFile.Create.cs
Zdroj:
ZipFile.Create.cs

Otevře archiv zip v zadané cestě a v zadaném režimu.

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

Cesta k archivu, který se má otevřít, zadaná jako relativní nebo absolutní cesta. Relativní cesta je interpretována jako relativní k aktuálnímu pracovnímu adresáři.

mode
ZipArchiveMode

Jedna z hodnot výčtu, která určuje akce, které jsou povoleny pro položky v otevřeném archivu.

Návraty

Otevřený archiv zip.

Výjimky

archiveFileName is Empty, obsahuje pouze prázdné znaky nebo obsahuje alespoň jeden neplatný znak.

archiveFileName je null.

V archiveFileNamesystému zadaná cesta, název souboru nebo obojí překračují maximální délku definovanou systémem.

archiveFileName je neplatný nebo neexistuje (například se nachází na nenamapované jednotce).

archiveFileName nelze otevřít.

-nebo-

mode je nastavená na Create, ale soubor zadaný v archiveFileName souboru již existuje.

-nebo-

Při otevírání souboru došlo k nespecifikované vstupně-výstupní chybě.

archiveFileName určuje adresář.

-nebo-

Volající nemá požadovaná oprávnění pro přístup k souboru zadanému v archiveFileName.

mode určuje neplatnou hodnotu.

mode je nastavená na Read, ale soubor zadaný v archiveFileName souboru nebyl nalezen.

archiveFileName obsahuje neplatný formát.

archiveFileName nelze interpretovat jako archiv zip.

-nebo-

mode je Update, ale položka chybí nebo je poškozená a nelze ji přečíst.

-nebo-

mode je Update, ale položka je příliš velká, aby se nevešla do paměti.

Příklady

Následující příklad ukazuje, jak otevřít archiv zip v režimu aktualizace a přidat položku do archivu.

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

Poznámky

Když nastavíte mode parametr na Read, archiv se otevře z Open výčtu FileMode jako hodnota režimu souboru. Pokud archiv neexistuje, vyvolá se FileNotFoundException výjimka. Nastavení parametru mode na hodnotu Read je ekvivalentem volání OpenRead metody .

Když nastavíte mode parametr na Create, archiv se otevře s FileMode.CreateNew hodnotou režimu souboru. Pokud archiv již existuje, IOException je vyvolán .

Když nastavíte mode parametr na Update, archiv se otevře s FileMode.OpenOrCreate hodnotou režimu souboru. Pokud archiv existuje, otevře se. Existující položky lze upravovat a vytvářet nové položky. Pokud archiv neexistuje, je vytvořen nový archiv; Vytvoření archivu ZIP v Update režimu však není tak efektivní jako jeho vytvoření v Create režimu.

Platí pro