Freigeben über


TarFile.ExtractToDirectoryAsync Methode

Definition

Überlädt

Name Beschreibung
ExtractToDirectoryAsync(Stream, String, Boolean, CancellationToken)

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

ExtractToDirectoryAsync(String, String, Boolean, CancellationToken)

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

ExtractToDirectoryAsync(Stream, String, Boolean, CancellationToken)

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

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

public static System.Threading.Tasks.Task ExtractToDirectoryAsync(System.IO.Stream source, string destinationDirectoryName, bool overwriteFiles, System.Threading.CancellationToken cancellationToken = default);
static member ExtractToDirectoryAsync : System.IO.Stream * string * bool * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function ExtractToDirectoryAsync (source As Stream, destinationDirectoryName As String, overwriteFiles As Boolean, Optional cancellationToken As CancellationToken = Nothing) As Task

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.

cancellationToken
CancellationToken

Das Token, das auf Abbruchanforderungen überwacht werden soll. Der Standardwert ist None.

Gibt zurück

Eine Aufgabe, die den asynchronen Extraktionsvorgang darstellt.

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.

Das Abbruchtoken wurde abgebrochen. Diese Ausnahme wird in der zurückgegebenen Aufgabe gespeichert.

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.

Diese Methode speichert in der Aufgabe, die alle Nicht-Verwendungs-Ausnahmen zurückgibt, die das synchrone Gegenstück der Methode auslösen kann. Wenn eine Ausnahme in der zurückgegebenen Aufgabe gespeichert wird, wird diese Ausnahme ausgelöst, wenn die Aufgabe erwartet wird. Verwendungsausnahmen, z. B. ArgumentException, werden weiterhin synchron ausgelöst. Informationen zu den gespeicherten Ausnahmen finden Sie in den von ExtractToDirectory(Stream, String, Boolean).

Gilt für:

ExtractToDirectoryAsync(String, String, Boolean, CancellationToken)

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

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

public static System.Threading.Tasks.Task ExtractToDirectoryAsync(string sourceFileName, string destinationDirectoryName, bool overwriteFiles, System.Threading.CancellationToken cancellationToken = default);
static member ExtractToDirectoryAsync : string * string * bool * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function ExtractToDirectoryAsync (sourceFileName As String, destinationDirectoryName As String, overwriteFiles As Boolean, Optional cancellationToken As CancellationToken = Nothing) As Task

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.

cancellationToken
CancellationToken

Das Token, das auf Abbruchanforderungen überwacht werden soll. Der Standardwert ist None.

Gibt zurück

Eine Aufgabe, die den asynchronen Extraktionsvorgang darstellt.

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.

Das Abbruchtoken wurde abgebrochen. Diese Ausnahme wird in der zurückgegebenen Aufgabe gespeichert.

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.

Diese Methode speichert in der Aufgabe, die alle Nicht-Verwendungs-Ausnahmen zurückgibt, die das synchrone Gegenstück der Methode auslösen kann. Wenn eine Ausnahme in der zurückgegebenen Aufgabe gespeichert wird, wird diese Ausnahme ausgelöst, wenn die Aufgabe erwartet wird. Verwendungsausnahmen, z. B. ArgumentException, werden weiterhin synchron ausgelöst. Informationen zu den gespeicherten Ausnahmen finden Sie in den von ExtractToDirectory(String, String, Boolean).

Gilt für: