ZipFile.Open Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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 archiveFileName
systé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 archiveFileName
systé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.