ZipFileExtensions.ExtractToDirectory 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.
Ü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)
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 destinationDirectoryName
angegebene 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)
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).