ZipFile.Open Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Öffnet ein ZIP-Archiv am angegebenen Pfad und im angegebenen Modus.
Überlädt
| Name | Beschreibung |
|---|---|
| Open(String, ZipArchiveMode) |
Öffnet ein ZIP-Archiv am angegebenen Pfad und im angegebenen Modus. |
| Open(String, ZipArchiveMode, Encoding) |
Öffnet ein ZIP-Archiv am angegebenen Pfad im angegebenen Modus und mithilfe der angegebenen Zeichencodierung für Eintragsnamen und Kommentare. |
Open(String, ZipArchiveMode)
- Quelle:
- ZipFile.Create.cs
- Quelle:
- ZipFile.Create.cs
- Quelle:
- ZipFile.Create.cs
- Quelle:
- ZipFile.Create.cs
- Quelle:
- ZipFile.Create.cs
Öffnet ein ZIP-Archiv am angegebenen Pfad und im angegebenen Modus.
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
Parameter
- archiveFileName
- String
Der Pfad zum zu öffnenden Archiv, angegeben als relativer oder absoluter Pfad. Ein relativer Pfad wird relativ zum aktuellen Arbeitsverzeichnis interpretiert.
- mode
- ZipArchiveMode
Einer der Enumerationswerte, der die Aktionen angibt, die für die Einträge im geöffneten Archiv zulässig sind.
Gibt zurück
Das geöffnete ZIP-Archiv.
Ausnahmen
archiveFileName ist Empty, enthält nur Leerzeichen oder mindestens ein ungültiges Zeichen.
archiveFileName ist null.
In archiveFileName, the specified path, file name, or both exceed the system-defined maximum length.
archiveFileName ist ungültig oder nicht vorhanden (z. B. auf einem nicht zugeordneten Laufwerk).
archiveFileName konnte nicht geöffnet werden.
-oder-
mode ist auf Create", aber die angegebene archiveFileName Datei ist bereits vorhanden.
-oder-
Beim Öffnen der Datei ist ein nicht angegebener E/A-Fehler aufgetreten.
archiveFileName gibt ein Verzeichnis an.
-oder-
Der Aufrufer verfügt nicht über die erforderliche Berechtigung für den Zugriff auf die in archiveFileNameder Datei angegebene Datei.
mode Gibt einen ungültigen Wert an.
mode ist auf Read", aber die angegebene archiveFileName Datei wurde nicht gefunden.
archiveFileName enthält ein ungültiges Format.
archiveFileName konnte nicht als ZIP-Archiv interpretiert werden.
-oder-
mode ist Update, aber ein Eintrag fehlt oder beschädigt und kann nicht gelesen werden.
-oder-
mode ist Update, aber ein Eintrag ist zu groß, um in den Arbeitsspeicher zu passen.
Beispiele
Das folgende Beispiel zeigt, wie Sie ein ZIP-Archiv im Updatemodus öffnen und dem Archiv einen Eintrag hinzufügen.
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
Hinweise
Wenn Sie den mode Parameter auf Read"" festlegen, wird das Archiv aus der Open Enumeration als Dateimoduswert geöffnetFileMode. Wenn das Archiv nicht vorhanden ist, wird eine FileNotFoundException Ausnahme ausgelöst. Das Festlegen des mode Parameters auf Read den Parameter entspricht dem Aufrufen der OpenRead Methode.
Wenn Sie den mode Parameter auf Create festlegen, wird das Archiv als Dateimoduswert geöffnet FileMode.CreateNew . Wenn das Archiv bereits vorhanden ist, wird ein IOException Fehler ausgelöst.
Wenn Sie den mode Parameter auf Update festlegen, wird das Archiv als Dateimoduswert geöffnet FileMode.OpenOrCreate . Wenn das Archiv vorhanden ist, wird es geöffnet. Die vorhandenen Einträge können geändert werden, und neue Einträge können erstellt werden. Wenn das Archiv nicht vorhanden ist, wird ein neues Archiv erstellt; Das Erstellen eines ZIP-Archivs im Update Modus ist jedoch nicht so effizient wie das Erstellen im Create Modus.
Gilt für:
Open(String, ZipArchiveMode, Encoding)
- Quelle:
- ZipFile.Create.cs
- Quelle:
- ZipFile.Create.cs
- Quelle:
- ZipFile.Create.cs
- Quelle:
- ZipFile.Create.cs
- Quelle:
- ZipFile.Create.cs
Öffnet ein ZIP-Archiv am angegebenen Pfad im angegebenen Modus und mithilfe der angegebenen Zeichencodierung für Eintragsnamen und Kommentare.
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
Parameter
- archiveFileName
- String
Der Pfad zum zu öffnenden Archiv, angegeben als relativer oder absoluter Pfad. Ein relativer Pfad wird relativ zum aktuellen Arbeitsverzeichnis interpretiert.
- mode
- ZipArchiveMode
Einer der Enumerationswerte, der die Aktionen angibt, die für die Einträge im geöffneten Archiv zulässig sind.
- entryNameEncoding
- Encoding
Die Codierung, die beim Lesen oder Schreiben von Eintragsnamen und Kommentaren in diesem Archiv verwendet werden soll. Geben Sie einen Wert für diesen Parameter nur an, wenn eine Codierung für die Interoperabilität mit ZIP-Archivtools und -bibliotheken erforderlich ist, die utf-8-Codierung für Eintragsnamen oder Kommentare nicht unterstützen.
Gibt zurück
Das geöffnete ZIP-Archiv.
Ausnahmen
archiveFileName ist Empty, enthält nur Leerzeichen oder mindestens ein ungültiges Zeichen.
-oder-
entryNameEncoding ist auf eine andere Unicode-Codierung als UTF-8 festgelegt.
archiveFileName ist null.
In archiveFileName, the specified path, file name, or both exceed the system-defined maximum length.
archiveFileName ist ungültig oder nicht vorhanden (z. B. auf einem nicht zugeordneten Laufwerk).
archiveFileName konnte nicht geöffnet werden.
-oder-
mode ist auf Create", aber die angegebene archiveFileName Datei ist bereits vorhanden.
-oder-
Beim Öffnen der Datei ist ein nicht angegebener E/A-Fehler aufgetreten.
archiveFileName gibt ein Verzeichnis an.
-oder-
Der Aufrufer verfügt nicht über die erforderliche Berechtigung für den Zugriff auf die in archiveFileNameder Datei angegebene Datei.
mode Gibt einen ungültigen Wert an.
mode ist auf Read", aber die angegebene archiveFileName Datei wurde nicht gefunden.
archiveFileName enthält ein ungültiges Format.
archiveFileName konnte nicht als ZIP-Archiv interpretiert werden.
-oder-
mode ist Update, aber ein Eintrag fehlt oder beschädigt und kann nicht gelesen werden.
-oder-
mode ist Update, aber ein Eintrag ist zu groß, um in den Arbeitsspeicher zu passen.
Hinweise
Wenn Sie den mode Parameter auf Read festlegen, wird das Archiv als Dateimoduswert geöffnet FileMode.Open . Wenn das Archiv nicht vorhanden ist, wird eine FileNotFoundException Ausnahme ausgelöst. Das Festlegen des mode Parameters auf Read den Parameter entspricht dem Aufrufen der OpenRead Methode.
Wenn Sie den mode Parameter auf Create festlegen, wird das Archiv als Dateimoduswert geöffnet FileMode.CreateNew . Wenn das Archiv bereits vorhanden ist, wird ein IOException Fehler ausgelöst.
Wenn Sie den mode Parameter auf Update festlegen, wird das Archiv als Dateimoduswert geöffnet FileMode.OpenOrCreate . Wenn das Archiv vorhanden ist, wird es geöffnet. Die vorhandenen Einträge können geändert werden, und neue Einträge können erstellt werden. Wenn das Archiv nicht vorhanden ist, wird ein neues Archiv erstellt; Das Erstellen eines ZIP-Archivs im Update Modus ist jedoch nicht so effizient wie das Erstellen im Create Modus.
Wenn Sie eine ZIP-Archivdatei zum Lesen öffnen und entryNameEncoding auf nulldiese festgelegt sind, werden Eintragsnamen und Kommentare gemäß den folgenden Regeln decodiert:
- Wenn die Sprachcodierungskennzeichnung (im allgemeinen Bit-Flag der lokalen Dateiheader) nicht festgelegt ist, wird die aktuelle Standardcodeseite des Systems verwendet, um den Eintragsnamen und den Kommentar zu decodieren.
- Wenn die Sprachcodierungskennzeichnung festgelegt ist, wird UTF-8 verwendet, um den Eintragsnamen und den Kommentar zu decodieren.
Wenn Sie eine ZIP-Archivdatei zum Lesen öffnen und entryNameEncoding auf einen anderen Wert als nullfestgelegt sind, werden Eintragsnamen und Kommentare gemäß den folgenden Regeln decodiert:
- Wenn die Sprachcodierungskennzeichnung nicht festgelegt ist, wird die angegebene
entryNameEncodingEigenschaft verwendet, um den Eintragsnamen und den Kommentar zu decodieren. - Wenn die Sprachcodierungskennzeichnung festgelegt ist, wird UTF-8 verwendet, um den Eintragsnamen und den Kommentar zu decodieren.
Wenn Sie in Archivdateien schreiben und entryNameEncoding auf null"Eintragsnamen" und "Kommentare" festgelegt sind, werden diese entsprechend den folgenden Regeln codiert:
- Bei Eintragsnamen oder Kommentaren, die Zeichen außerhalb des ASCII-Bereichs enthalten, wird das Sprachcodierungskennzeichnungszeichen festgelegt, und Eintragsnamen und Kommentare werden mithilfe von UTF-8 codiert.
- Bei Eintragsnamen oder Kommentaren, die nur ASCII-Zeichen enthalten, wird das Sprachcodierungsflagge nicht festgelegt, und Eintragsnamen und Kommentare werden mithilfe der aktuellen Standardcodeseite des Systems codiert.
Wenn Sie in Archivdateien schreiben und entryNameEncoding auf einen anderen Wert als nullfestgelegt sind, wird die angegebene entryNameEncoding Eigenschaft verwendet, um die Eintragsnamen und Kommentare in Byte zu codieren. Die Sprachcodierungskennzeichnung (im allgemeinen Bit-Flag des lokalen Dateiheaders) wird nur festgelegt, wenn die angegebene Codierung eine UTF-8-Codierung ist.