Freigeben über


TarFile.ExtractToDirectory Methode

Definition

Überlädt

Name Beschreibung
ExtractToDirectory(Stream, String, Boolean)

Extrahiert den Inhalt eines Datenstroms, der ein Tar-Archiv in das angegebene Verzeichnis darstellt.

ExtractToDirectory(String, String, Boolean)

Extrahiert den Inhalt einer Tar-Datei in das angegebene Verzeichnis.

ExtractToDirectory(Stream, String, Boolean)

Quelle:
TarFile.cs
Quelle:
TarFile.cs
Quelle:
TarFile.cs
Quelle:
TarFile.cs
Quelle:
TarFile.cs

Extrahiert den Inhalt eines Datenstroms, der ein Tar-Archiv in das angegebene Verzeichnis darstellt.

public:
 static void ExtractToDirectory(System::IO::Stream ^ source, System::String ^ destinationDirectoryName, bool overwriteFiles);
public static void ExtractToDirectory(System.IO.Stream source, string destinationDirectoryName, bool overwriteFiles);
static member ExtractToDirectory : System.IO.Stream * string * bool -> unit
Public Shared Sub ExtractToDirectory (source As Stream, destinationDirectoryName As String, overwriteFiles As Boolean)

Parameter

source
Stream

Der Datenstrom, der das Tar-Archiv enthält.

destinationDirectoryName
String

Der Pfad des Zielverzeichnisses, in dem die Dateisystemeinträge extrahiert werden sollen.

overwriteFiles
Boolean

true zum Überschreiben von Dateien und Verzeichnissen in destinationDirectoryName; false um das Überschreiben zu vermeiden und auszuwerfen, wenn Dateien oder Verzeichnisse mit vorhandenen Namen gefunden werden.

Ausnahmen

source oder destinationDirectoryName ist null.

Der destinationDirectoryName Verzeichnispfad wurde nicht gefunden.

Berechtigungen sind nicht ausreichend.

Das Extrahieren eines der Tar-Einträge hätte zu einer Datei außerhalb des angegebenen Zielverzeichnisses geführt.

- oder -

destinationDirectoryName ist leer.

- oder -

source das Lesen wird nicht unterstützt.

Nur .NET 11 und höhere Versionen: Die Prüfsumme eines Eintrags ist ungültig.

Es ist eine E/A-Ausnahme aufgetreten.

Hinweise

Wenn eine symbolische Verknüpfung oder Verbindung im Tar-Archiv zu einer Datei führt, die außerhalb des angegebenen Bereichs destinationDirectoryNameextrahiert wird, wird eine IOException ausgelöst, um sicherzustellen, dass die Extraktion innerhalb desselben Verzeichnisses verbleibt.

Wenn destinationDirectoryName es sich bei einem der übergeordneten Verzeichnisse um eine bereits vorhandene Verbindung oder eine symbolische Verknüpfung handelt, wird der Link befolgt, und die Extraktion schreibt in den endgültigen Zielordner.

Dateien vom Typ BlockDevice, CharacterDeviceoder Fifo können nur in Unix-Plattformen extrahiert werden.

Zum Extrahieren einer BlockDevice oder CharacterDevice eines Datenträgers ist eine Erhöhung erforderlich.

Diese Methode beschränkt nicht die gesamt extrahierte Größe oder die Anzahl der aus dem Archiv extrahierten Einträge. Bei der Verarbeitung von Archiven aus nicht vertrauenswürdigen Quellen durchlaufen Sie die Einträge manuell, TarReaderund überprüfen Sie, ob die Größe und die Anzahl der Einträge innerhalb akzeptabler Grenzwerte für Ihr Szenario liegen.

Gilt für:

ExtractToDirectory(String, String, Boolean)

Quelle:
TarFile.cs
Quelle:
TarFile.cs
Quelle:
TarFile.cs
Quelle:
TarFile.cs
Quelle:
TarFile.cs

Extrahiert den Inhalt einer Tar-Datei in das angegebene Verzeichnis.

public:
 static void ExtractToDirectory(System::String ^ sourceFileName, System::String ^ destinationDirectoryName, bool overwriteFiles);
public static void ExtractToDirectory(string sourceFileName, string destinationDirectoryName, bool overwriteFiles);
static member ExtractToDirectory : string * string * bool -> unit
Public Shared Sub ExtractToDirectory (sourceFileName As String, destinationDirectoryName As String, overwriteFiles As Boolean)

Parameter

sourceFileName
String

Der Pfad der zu extrahierenden Tar-Datei.

destinationDirectoryName
String

Der Pfad des Zielverzeichnisses, in dem die Dateisystemeinträge extrahiert werden sollen.

overwriteFiles
Boolean

true zum Überschreiben von Dateien und Verzeichnissen in destinationDirectoryName; false um das Überschreiben zu vermeiden und auszuwerfen, wenn Dateien oder Verzeichnisse mit vorhandenen Namen gefunden werden.

Ausnahmen

sourceFileName oder destinationDirectoryName ist null.

Der destinationDirectoryName Verzeichnispfad wurde nicht gefunden.

Der sourceFileName Dateipfad wurde nicht gefunden.

Berechtigungen sind nicht ausreichend.

Das Extrahieren eines der Tar-Einträge hätte zu einer Datei außerhalb des angegebenen Zielverzeichnisses geführt.

- oder -

sourceFileName oder destinationDirectoryName ist leer.

Nur .NET 11 und höhere Versionen: Die Prüfsumme eines Eintrags ist ungültig.

Es ist eine E/A-Ausnahme aufgetreten.

Hinweise

Wenn eine symbolische Verknüpfung oder Verbindung im Tar-Archiv zu einer Datei führt, die außerhalb des angegebenen Bereichs destinationDirectoryNameextrahiert wird, wird eine IOException ausgelöst, um sicherzustellen, dass die Extraktion innerhalb desselben Verzeichnisses verbleibt.

Wenn destinationDirectoryName es sich bei einem der übergeordneten Verzeichnisse um eine bereits vorhandene Verbindung oder eine symbolische Verknüpfung handelt, wird der Link befolgt, und die Extraktion schreibt in den endgültigen Zielordner.

Dateien vom Typ BlockDevice, CharacterDeviceoder Fifo können nur in Unix-Plattformen extrahiert werden.

Zum Extrahieren einer BlockDevice oder CharacterDevice eines Datenträgers ist eine Erhöhung erforderlich.

Diese Methode beschränkt nicht die gesamt extrahierte Größe oder die Anzahl der aus dem Archiv extrahierten Einträge. Bei der Verarbeitung von Archiven aus nicht vertrauenswürdigen Quellen durchlaufen Sie die Einträge manuell, TarReaderund überprüfen Sie, ob die Größe und die Anzahl der Einträge innerhalb akzeptabler Grenzwerte für Ihr Szenario liegen.

Gilt für: