Freigeben über


ZipFileExtensions.ExtractToDirectory Methode

Definition

Überlädt

ExtractToDirectory(ZipArchive, String)

Extrahiert alle Dateien im ZIP-Archiv in ein Verzeichnis im Dateisystem.

ExtractToDirectory(ZipArchive, String, Boolean)

Extrahiert alle Dateien im Archiv in ein Verzeichnis im Dateisystem.

ExtractToDirectory(ZipArchive, String)

Quelle:
ZipFileExtensions.ZipArchive.Extract.cs
Quelle:
ZipFileExtensions.ZipArchive.Extract.cs
Quelle:
ZipFileExtensions.ZipArchive.Extract.cs

Extrahiert alle Dateien im ZIP-Archiv in ein Verzeichnis im Dateisystem.

public:
[System::Runtime::CompilerServices::Extension]
 static void ExtractToDirectory(System::IO::Compression::ZipArchive ^ source, System::String ^ destinationDirectoryName);
public static void ExtractToDirectory (this System.IO.Compression.ZipArchive source, string destinationDirectoryName);
static member ExtractToDirectory : System.IO.Compression.ZipArchive * string -> unit
<Extension()>
Public Sub ExtractToDirectory (source As ZipArchive, destinationDirectoryName As String)

Parameter

source
ZipArchive

Das ZIP-Archiv, aus dem Dateien extrahiert werden sollen.

destinationDirectoryName
String

Der Pfad zu dem Verzeichnis, in dem die extrahierten Dateien gespeichert werden soll. Sie können einen relativen oder einen absoluten Pfad angeben. Ein relativer Pfad wird relativ zum aktuellen Arbeitsverzeichnis interpretiert.

Ausnahmen

destinationDirectoryName ist gleich Empty, enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen.

destinationDirectoryName ist null.

Der angegebene Pfad überschreitet die für das System definierte maximale Länge.

Der angegebene Pfad ist ungültig (er befindet sich z. B. auf einem nicht zugeordneten Laufwerk).

Der Name eines Eintrags im Archiv ist Empty, enthält nur Leerraum oder enthält mindestens ein ungültiges Zeichen.

- oder -

Extrahieren eines Eintrags aus dem Archiv würde Sie eine Datei erstellen, die sich außerhalb des Verzeichnisses befindet, das durch destinationDirectoryName angegeben ist. (Zum Beispiel geschähe dies möglicherweise, wenn der Eintragsname Accessoren des übergeordneten Verzeichnisses enthält.)

- oder -

Mehrere Einträge im Archiv haben denselben Namen.

Der Aufrufer hat nicht die erforderliche Berechtigung, um in das Zielverzeichnis zu schreiben.

destinationDirectoryName enthält ein ungültiges Format.

Ein Archiveintrag wird nicht gefunden oder ist beschädigt.

- oder -

Ein Archiveintrag wurde mit einer Komprimierungsmethode komprimiert, die nicht unterstützt wird.

Beispiele

Das folgende Beispiel zeigt, wie Sie einen neuen Eintrag in einem ZIP-Archiv aus einer vorhandenen Datei erstellen und das Archiv in ein neues Verzeichnis extrahieren.

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);
            }
        }
    }
}
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

Mit dieser Methode wird das durch destinationDirectoryNameangegebene Verzeichnis erstellt. Die -Methode erstellt auch Unterverzeichnisse, die die Hierarchie im ZIP-Archiv widerspiegeln. Wenn während der Extraktion ein Fehler auftritt, bleibt das Archiv teilweise extrahiert. Jede extrahierte Datei hat denselben relativen Pfad zu dem von destinationDirectoryName angegebenen Verzeichnis, wie der Quelleintrag zum Stammverzeichnis des Archivs hat.

Gilt für:

ExtractToDirectory(ZipArchive, String, Boolean)

Quelle:
ZipFileExtensions.ZipArchive.Extract.cs
Quelle:
ZipFileExtensions.ZipArchive.Extract.cs
Quelle:
ZipFileExtensions.ZipArchive.Extract.cs

Extrahiert alle Dateien im Archiv in ein Verzeichnis im Dateisystem.

public:
[System::Runtime::CompilerServices::Extension]
 static void ExtractToDirectory(System::IO::Compression::ZipArchive ^ source, System::String ^ destinationDirectoryName, bool overwriteFiles);
public static void ExtractToDirectory (this System.IO.Compression.ZipArchive source, string destinationDirectoryName, bool overwriteFiles);
static member ExtractToDirectory : System.IO.Compression.ZipArchive * string * bool -> unit
<Extension()>
Public Sub ExtractToDirectory (source As ZipArchive, destinationDirectoryName As String, overwriteFiles As Boolean)

Parameter

source
ZipArchive

Die zu extrahierende ZipArchive-Klasse.

destinationDirectoryName
String

Der Pfad zum Zielverzeichnis im Dateisystem. Der Pfad kann relativ oder absolut sein. Ein relativer Pfad wird relativ zum aktuellen Arbeitsverzeichnis interpretiert.

overwriteFiles
Boolean

true , um vorhandene Dateien zu überschreiben; false Andernfalls.

Ausnahmen

destinationArchiveFileName ist eine leere Zeichenfolge, enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen gemäß der Definition des InvalidPathChars-Felds.

destinationArchiveFileName ist null.

Der angegebene Pfad und/oder Dateiname überschreiten die vom System definierte maximale Länge.

Der angegebene Pfad ist ungültig (er befindet sich z. B. auf einem nicht zugeordneten Laufwerk).

Der Name von ZipArchiveEntry ist eine leere Zeichenfolge, die nur Leerzeichen oder mindestens ein gemäß der Definition von InvalidPathChars ungültiges Zeichen enthält.

- oder -

Das Extrahieren einer ZipArchiveEntry-Klasse hätte dazu geführt, dass eine Zieldatei außerhalb von destinationArchiveFileName liegt (beispielsweise wenn der Name des Eintrags Accessoren für übergeordnete Verzeichnisse enthält).

- oder -

Eine ZipArchiveEntry-Klasse hat denselben Namen wie ein bereits extrahierter Eintrag aus demselben Archiv.

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

destinationArchiveFileName weist ein ungültiges Format auf.

ZipArchiveEntry wurde nicht gefunden oder ist fehlerhaft.

- oder -

Eine ZipArchiveEntry-Klasse wurde mit einer nicht unterstützten Komprimierungsmethode komprimiert.

Hinweise

Das angegebene Verzeichnis ist möglicherweise bereits vorhanden. Diese Methode erstellt das angegebene Verzeichnis und bei Bedarf alle Unterverzeichnisse.

Wenn beim Extrahieren des Archivs ein Fehler auftritt, bleibt das Archiv teilweise extrahiert.

Jeder Eintrag wird so extrahiert, dass die extrahierte Datei den gleichen relativen Pfad zu destinationDirectoryName wie der Eintrag zum Stammverzeichnis des Archivs hat.

Wenn eine zu archivierende Datei einen ungültigen Zeitpunkt der letzten Änderung aufweist, werden das erste Datum und die erste Uhrzeit verwendet, die im Zip-Zeitstempelformat dargestellt werden können (Mitternacht am 1. Januar 1980).

Gilt für: