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 unter dem angegebenen Pfad und im angegebenen Modus.
Überlädt
Open(String, ZipArchiveMode, Encoding) |
Öffnet ein Zip-Archiv im angegebenen Pfad im angegebenen Modus und mit der angegebenen Zeichencodierung für Eintragsnamen. |
Open(String, ZipArchiveMode) |
Öffnet ein Zip-Archiv unter dem angegebenen Pfad und im angegebenen Modus. |
Open(String, ZipArchiveMode, Encoding)
- Quelle:
- ZipFile.Create.cs
- Quelle:
- ZipFile.Create.cs
- Quelle:
- ZipFile.Create.cs
Öffnet ein Zip-Archiv im angegebenen Pfad im angegebenen Modus und mit der angegebenen Zeichencodierung für Eintragsnamen.
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 Archiv, dass geöffnet werden soll, 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 bei den Einträgen im geöffneten Archiv zulässig sind.
- entryNameEncoding
- Encoding
Die Codierung, die beim Lesen oder Schreiben von Eintragsnamen 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-Archiv-Tools und -Bibliotheken erforderlich ist, die die UTF-8-Codierung für Eintragsnamen nicht unterstützen.
Gibt zurück
Das geöffnete ZIP-Archiv.
Ausnahmen
archiveFileName
ist gleich Empty, enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen.
- oder -
entryNameEncoding
wird auf eine andere Unicode-Codierung als UTF-8 festgelegt.
archiveFileName
ist null
.
Im archiveFileName
überschreiten der angegebene Pfad und/oder der Dateiname die vom System vorgegebene Höchstlänge.
archiveFileName
ist ungültig oder nicht vorhanden (z. B. befindet er sich auf einem nicht zugeordneten Laufwerk).
archiveFileName
konnte nicht geöffnet werden.
- oder -
mode
wird auf Create festgelegt, aber die Datei, die in archiveFileName
angegeben ist, ist bereits vorhanden.
- oder -
Beim Öffnen der Datei ist ein nicht spezifizierter 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 archiveFileName
angegebene Datei.
mode
gibt einen ungültigen Wert an.
mode
wird auf Read festgelegt, aber die Datei, die in archiveFileName
angegeben wird, 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 ist 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 Readfestlegen, wird das Archiv mit FileMode.Open als Dateimoduswert geöffnet. Wenn das Archiv nicht vorhanden ist, wird eine FileNotFoundException Ausnahme ausgelöst. Das Festlegen des mode
Parameters auf Read entspricht dem Aufrufen der OpenRead -Methode.
Wenn Sie den mode
Parameter auf Createfestlegen, wird das Archiv mit FileMode.CreateNew als Dateimoduswert geöffnet. Wenn das Archiv bereits vorhanden ist, wird ein IOException ausgelöst.
Wenn Sie den mode
Parameter auf Updatefestlegen, wird das Archiv mit FileMode.OpenOrCreate als Dateimoduswert geöffnet. Wenn das Archiv vorhanden ist, wird es geöffnet. Die vorhandenen Einträge können geändert und neue Einträge 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 null
festgelegt ist, werden Eintragsnamen gemäß den folgenden Regeln decodiert:
Wenn das Sprachcodierungsflag (im universellen Bitflag des lokalen Dateiheaders) nicht festgelegt ist, wird die aktuelle Systemstandardcodepage verwendet, um den Eintragsnamen zu decodieren.
Wenn das Sprachcodierungsflag festgelegt ist, wird UTF-8 verwendet, um den Eintragsnamen zu decodieren.
Wenn Sie eine ZIP-Archivdatei zum Lesen öffnen und entryNameEncoding
auf einen anderen Wert als null
festgelegt ist, werden Eintragsnamen gemäß den folgenden Regeln decodiert:
Wenn das Sprachcodierungsflag nicht festgelegt ist, wird das angegebene
entryNameEncoding
verwendet, um den Eintragsnamen zu decodieren.Wenn das Sprachcodierungsflag festgelegt ist, wird UTF-8 verwendet, um den Eintragsnamen zu decodieren.
Wenn Sie in Archivdateien schreiben und entryNameEncoding
auf null
festgelegt sind, werden Eintragsnamen gemäß den folgenden Regeln codiert:
Für Eintragsnamen, die Zeichen außerhalb des ASCII-Bereichs enthalten, wird das Sprachcodierungsflag festgelegt, und Die Eingabenamen werden mithilfe von UTF-8 codiert.
Für Eintragsnamen, die nur ASCII-Zeichen enthalten, ist das Sprachcodierungsflag nicht festgelegt, und Eingabenamen werden mithilfe der aktuellen Systemstandardcodepage codiert.
Wenn Sie in Archivdateien schreiben und entryNameEncoding
auf einen anderen Wert als null
festgelegt sind, wird der angegebene entryNameEncoding
verwendet, um die Eintragsnamen in Bytes zu codieren. Das Sprachcodierungsflag (im universellen Bitflag des lokalen Dateiheaders) wird nur festgelegt, wenn die angegebene Codierung eine UTF-8-Codierung ist.
Gilt für:
Open(String, ZipArchiveMode)
- Quelle:
- ZipFile.Create.cs
- Quelle:
- ZipFile.Create.cs
- Quelle:
- ZipFile.Create.cs
Öffnet ein Zip-Archiv unter dem 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 Archiv, dass geöffnet werden soll, 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 bei den Einträgen im geöffneten Archiv zulässig sind.
Gibt zurück
Das geöffnete ZIP-Archiv.
Ausnahmen
archiveFileName
ist gleich Empty, enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen.
archiveFileName
ist null
.
Im archiveFileName
überschreiten der angegebene Pfad und/oder der Dateiname die vom System vorgegebene Höchstlänge.
archiveFileName
ist ungültig oder nicht vorhanden (z. B. befindet er sich auf einem nicht zugeordneten Laufwerk).
archiveFileName
konnte nicht geöffnet werden.
- oder -
mode
wird auf Create festgelegt, aber die Datei, die in archiveFileName
angegeben ist, ist bereits vorhanden.
- oder -
Beim Öffnen der Datei ist ein nicht spezifizierter 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 archiveFileName
angegebene Datei.
mode
gibt einen ungültigen Wert an.
mode
wird auf Read festgelegt, aber die Datei, die in archiveFileName
angegeben wird, 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 ist 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 Readfestlegen, wird das Archiv mit Open aus der FileMode Enumeration als Dateimoduswert geöffnet. Wenn das Archiv nicht vorhanden ist, wird eine FileNotFoundException Ausnahme ausgelöst. Das Festlegen des mode
Parameters auf Read entspricht dem Aufrufen der OpenRead -Methode.
Wenn Sie den mode
Parameter auf Createfestlegen, wird das Archiv mit FileMode.CreateNew als Dateimoduswert geöffnet. Wenn das Archiv bereits vorhanden ist, wird ein IOException ausgelöst.
Wenn Sie den mode
Parameter auf Updatefestlegen, wird das Archiv mit FileMode.OpenOrCreate als Dateimoduswert geöffnet. Wenn das Archiv vorhanden ist, wird es geöffnet. Die vorhandenen Einträge können geändert und neue Einträge 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.