Freigeben über


ZipFile.Open Methode

Definition

Ö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 nullfestgelegt 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 nullfestgelegt 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 nullfestgelegt 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 nullfestgelegt 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.

Gilt für: