ZipFile.Open Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Otwiera archiwum zip w określonej ścieżce i w określonym trybie.
Przeciążenia
Open(String, ZipArchiveMode, Encoding) |
Otwiera archiwum zip w określonej ścieżce w określonym trybie i przy użyciu określonego kodowania znaków dla nazw wpisów. |
Open(String, ZipArchiveMode) |
Otwiera archiwum zip w określonej ścieżce i w określonym trybie. |
Open(String, ZipArchiveMode, Encoding)
- Źródło:
- ZipFile.Create.cs
- Źródło:
- ZipFile.Create.cs
- Źródło:
- ZipFile.Create.cs
Otwiera archiwum zip w określonej ścieżce w określonym trybie i przy użyciu określonego kodowania znaków dla nazw wpisów.
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
Ścieżka do archiwum do otwarcia, określona jako ścieżka względna lub bezwzględna. Ścieżka względna jest interpretowana jako względna względem bieżącego katalogu roboczego.
- mode
- ZipArchiveMode
Jedna z wartości wyliczenia, która określa akcje dozwolone w wpisach w otwartym archiwum.
- entryNameEncoding
- Encoding
Kodowanie do użycia podczas odczytywania lub zapisywania nazw wpisów w tym archiwum. Określ wartość tego parametru tylko wtedy, gdy kodowanie jest wymagane do współdziałania z narzędziami archiwum zip i bibliotekami, które nie obsługują kodowania UTF-8 dla nazw wpisów.
Zwraca
Otwarte archiwum zip.
Wyjątki
archiveFileName
to Empty, zawiera tylko białe znaki lub zawiera co najmniej jeden nieprawidłowy znak.
-lub-
entryNameEncoding
jest ustawiona na kodowanie Unicode inne niż UTF-8.
archiveFileName
to null
.
W archiveFileName
programie określona ścieżka, nazwa pliku lub oba te wartości przekraczają maksymalną długość zdefiniowaną przez system.
archiveFileName
jest nieprawidłowy lub nie istnieje (na przykład znajduje się na niezamapowanym dysku).
archiveFileName
nie można otworzyć.
-lub-
mode
jest ustawiona na Createwartość , ale plik określony w archiveFileName
już istnieje.
-lub-
Wystąpił nieokreślony błąd we/wy podczas otwierania pliku.
archiveFileName
określa katalog.
-lub-
Obiekt wywołujący nie ma wymaganych uprawnień dostępu do pliku określonego w pliku .archiveFileName
mode
określa nieprawidłową wartość.
mode
jest ustawiona na Readwartość , ale nie można odnaleźć pliku określonego w archiveFileName
pliku .
archiveFileName
zawiera nieprawidłowy format.
archiveFileName
nie można interpretować jako archiwum zip.
-lub-
mode
to Update, ale brakuje wpisu lub jest on uszkodzony i nie można go odczytać.
-lub-
mode
to Update, ale wpis jest zbyt duży, aby zmieścić się w pamięci.
Uwagi
Po ustawieniu parametru mode
na Readwartość , archiwum jest otwierane jako FileMode.Open wartość trybu pliku. Jeśli archiwum nie istnieje, FileNotFoundException zgłaszany jest wyjątek. Ustawienie parametru mode
na Read wartość jest równoważne wywołaniu OpenRead metody .
Po ustawieniu parametru mode
na Createwartość , archiwum jest otwierane jako FileMode.CreateNew wartość trybu pliku. Jeśli archiwum już istnieje, IOException zostanie zgłoszony element .
Po ustawieniu parametru mode
na Updatewartość , archiwum jest otwierane jako FileMode.OpenOrCreate wartość trybu pliku. Jeśli archiwum istnieje, zostanie otwarte. Istniejące wpisy można modyfikować i tworzyć nowe wpisy. Jeśli archiwum nie istnieje, zostanie utworzone nowe archiwum; jednak tworzenie archiwum zip w Update trybie nie jest tak wydajne, jak tworzenie go w Create trybie.
Po otwarciu pliku archiwum zip do odczytu i entryNameEncoding
ustawieniu na null
wartość , nazwy wpisów są dekodowane zgodnie z następującymi regułami:
Gdy flaga kodowania języka (w flagi bitowej ogólnego przeznaczenia nagłówka pliku lokalnego) nie jest ustawiona, bieżąca domyślna strona kodowa systemu jest używana do dekodowania nazwy wpisu.
Po ustawieniu flagi kodowania języka kodowanie UTF-8 służy do dekodowania nazwy wpisu.
Po otwarciu pliku archiwum zip do odczytu i entryNameEncoding
jest ustawiona na wartość inną niż null
, nazwy wpisów są dekodowane zgodnie z następującymi regułami:
Gdy flaga kodowania języka nie jest ustawiona, określona
entryNameEncoding
jest używana do dekodowania nazwy wpisu.Po ustawieniu flagi kodowania języka kodowanie UTF-8 służy do dekodowania nazwy wpisu.
Podczas zapisywania w plikach archiwum i entryNameEncoding
ustawiono na null
wartość , nazwy wpisów są kodowane zgodnie z następującymi regułami:
W przypadku nazw wpisów zawierających znaki poza zakresem ASCII jest ustawiona flaga kodowania języka, a nazwy wpisów są kodowane przy użyciu protokołu UTF-8.
W przypadku nazw wpisów zawierających tylko znaki ASCII flaga kodowania języka nie jest ustawiona, a nazwy wpisów są kodowane przy użyciu bieżącej domyślnej strony kodowej systemu.
Podczas zapisywania w plikach archiwum i entryNameEncoding
ustawiana jest wartość inna niż null
, określona entryNameEncoding
jest używana do kodowania nazw wpisów do bajtów. Flaga kodowania języka (w flagi bitowej ogólnego przeznaczenia nagłówka pliku lokalnego) jest ustawiana tylko wtedy, gdy określone kodowanie jest kodowaniem UTF-8.
Dotyczy
Open(String, ZipArchiveMode)
- Źródło:
- ZipFile.Create.cs
- Źródło:
- ZipFile.Create.cs
- Źródło:
- ZipFile.Create.cs
Otwiera archiwum zip w określonej ścieżce i w określonym trybie.
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
Ścieżka do archiwum do otwarcia, określona jako ścieżka względna lub bezwzględna. Ścieżka względna jest interpretowana jako względna względem bieżącego katalogu roboczego.
- mode
- ZipArchiveMode
Jedna z wartości wyliczenia, która określa akcje, które są dozwolone w wpisach w otwartym archiwum.
Zwraca
Otwarte archiwum zip.
Wyjątki
archiveFileName
to Empty, zawiera tylko białe znaki lub zawiera co najmniej jeden nieprawidłowy znak.
archiveFileName
to null
.
W archiveFileName
programie określona ścieżka, nazwa pliku lub oba te wartości przekraczają maksymalną długość zdefiniowaną przez system.
archiveFileName
jest nieprawidłowy lub nie istnieje (na przykład znajduje się na niezamapowanym dysku).
archiveFileName
nie można otworzyć.
-lub-
mode
jest ustawiona na Createwartość , ale plik określony w archiveFileName
już istnieje.
-lub-
Wystąpił nieokreślony błąd we/wy podczas otwierania pliku.
archiveFileName
określa katalog.
-lub-
Obiekt wywołujący nie ma wymaganych uprawnień dostępu do pliku określonego w pliku .archiveFileName
mode
określa nieprawidłową wartość.
mode
jest ustawiona na Readwartość , ale nie można odnaleźć pliku określonego w archiveFileName
pliku .
archiveFileName
zawiera nieprawidłowy format.
archiveFileName
nie można interpretować jako archiwum zip.
-lub-
mode
to Update, ale brakuje wpisu lub jest on uszkodzony i nie można go odczytać.
-lub-
mode
to Update, ale wpis jest zbyt duży, aby zmieścić się w pamięci.
Przykłady
W poniższym przykładzie pokazano, jak otworzyć archiwum zip w trybie aktualizacji i dodać wpis do archiwum.
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
Uwagi
Po ustawieniu parametru mode
na Readwartość , archiwum jest otwierane z Open wyliczenia FileMode jako wartość trybu pliku. Jeśli archiwum nie istnieje, FileNotFoundException zgłaszany jest wyjątek. Ustawienie parametru mode
na Read wartość jest równoważne wywołaniu OpenRead metody .
Po ustawieniu parametru mode
na Createwartość , archiwum jest otwierane jako FileMode.CreateNew wartość trybu pliku. Jeśli archiwum już istnieje, IOException zostanie zgłoszony element .
Po ustawieniu parametru mode
na Updatewartość , archiwum jest otwierane jako FileMode.OpenOrCreate wartość trybu pliku. Jeśli archiwum istnieje, zostanie otwarte. Istniejące wpisy można modyfikować i tworzyć nowe wpisy. Jeśli archiwum nie istnieje, zostanie utworzone nowe archiwum; jednak tworzenie archiwum zip w Update trybie nie jest tak wydajne, jak tworzenie go w Create trybie.