Class Archive

Class Archive

Der Name: Aspose.Zip Versammlung: Aspose.Zip.dll (25.5.0)

Diese Klasse repräsentiert eine zip-Archivdatei. Verwenden Sie es, um zu komponieren, zu extrahieren oder zu aktualisieren zip archiven.

public class Archive : IArchive, IDisposable

Inheritance

object Archive

Implements

IArchive , IDisposable

Vererbte Mitglieder

object.GetType() , object.MemberwiseClone() , object.ToString() , object.Equals(object?) , object.Equals(object?, object?) , object.ReferenceEquals(object?, object?) , object.GetHashCode()

Constructors

Archive(ArchiveEntrySettings)

Initialisiert eine neue Instanz der Aspose.Zip.Archive-Klasse mit optionalen Einstellungen für seine Einträge.

public Archive(ArchiveEntrySettings newEntrySettings = null)

Parameters

newEntrySettings ArchiveEntrySettings

Kompression und Verschlüsselung Einstellungen für neu hinzugefügt Aspose.Zip.ArchiveEntry Elemente.Wenn nicht angegeben, wird die häufigste Deflate-Kompression ohne Verschlüsselung verwendet.

Examples

Das folgende Beispiel zeigt, wie man eine einzige Datei mit standardmäßigen Einstellungen komprimiert.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(zipFile);
    }
}

Archive(Stream, ArchiveLoadOptions, ArchiveEntrySettings)

Initialisiert eine neue Instanz der Aspose.Zip.Archive-Klasse und komponiert eine Eingabeliste, die aus dem Archiv extrahiert werden kann.

public Archive(Stream sourceStream, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)

Parameters

sourceStream Stream

Die Quelle des Archivs.

loadOptions ArchiveLoadOptions

Die Optionen, bestehende Archiv mit zu laden.

newEntrySettings ArchiveEntrySettings

Kompression und Verschlüsselung Einstellungen für neu hinzugefügt Aspose.Zip.ArchiveEntry Elemente.Wenn nicht angegeben, wird die häufigste Deflate-Kompression ohne Verschlüsselung verwendet.

Examples

Das folgende Beispiel extrahiert ein verschlüsseltes Archiv und dekomprimiert dann den ersten Eingang in eine.

var fs = File.OpenRead("encrypted.zip");
var extracted = new MemoryStream();
using (Archive archive = new Archive(fs, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
    using (var decompressed = archive.Entries[0].Open())
    {
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = decompressed.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

Remarks

Dieser Konstruktor dekomprimiert keine Einträge. siehe Aspose.Zip.ArchiveEntry.Open(System.String) Methode zur dekomprimierung.

Exceptions

ArgumentException

sourceStream’ is not seekable.

InvalidDataException

Die Verschlüsselungsheader für AES widerspricht der WinZip Kompression Methode.

Archive(String, ArchiveLoadOptions, ArchiveEntrySettings)

Initialisiert eine neue Instanz der Aspose.Zip.Archive-Klasse und komponiert eine Eingabeliste, die aus dem Archiv extrahiert werden kann.

public Archive(string path, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)

Parameters

path string

Die voll qualifizierte oder die relative Route zum Archivdatei.

loadOptions ArchiveLoadOptions

Die Optionen, bestehende Archiv mit zu laden.

newEntrySettings ArchiveEntrySettings

Kompression und Verschlüsselung Einstellungen für neu hinzugefügt Aspose.Zip.ArchiveEntry Elemente.Wenn nicht angegeben, wird die häufigste Deflate-Kompression ohne Verschlüsselung verwendet.

Examples

Das folgende Beispiel extrahiert ein verschlüsseltes Archiv und dekomprimiert dann den ersten Eingang in eine.

var extracted = new MemoryStream();
using (Archive archive = new Archive("encrypted.zip", new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
    using (var decompressed = archive.Entries[0].Open())
    {
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = decompressed.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

Remarks

Dieser Konstruktor dekomprimiert keine Einträge. siehe Aspose.Zip.ArchiveEntry.Open(System.String) Methode zur dekomprimierung.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

Der Anrufgeber hat nicht die erforderliche Erlaubnis für den Zugang.

ArgumentException

Die path’ ist leer, enthält nur weiße Räume oder enthält ungültige Zeichen.

UnauthorizedAccessException

Der Zugriff auf die Datei path" wird abgelehnt.

PathTooLongException

Die angegebenen path’, Dateinamen, oder beide überschreiten die Systemdefinierte maximale Länge. Zum Beispiel auf Windows-basierten Plattformen müssen die Paths weniger als 248 Zeichen und Dateinamen weniger als 260 Zeichen sein.

NotSupportedException

Die Datei bei path’ enthält eine Kolonne (:) in der Mitte der Zeile.

FileNotFoundException

Die Datei ist nicht gefunden.

DirectoryNotFoundException

Der angegebenen Weg ist ungültig, z. B. auf einem unmapped Drive.

IOException

Die Datei ist bereits geöffnet.

InvalidDataException

Die Datei ist korrupt.

Archive(String und String[][], ArchiveLoadOptions)

Initialisiert eine neue Instanz der Aspose.Zip.Archive-Klasse aus dem Multi-Volume-Zip-Archiv und komponiert eine Eingabe-Liste, die aus dem Archiv extrahiert werden kann.

public Archive(string mainSegment, string[] segmentsInOrder, ArchiveLoadOptions loadOptions = null)

Parameters

mainSegment string

Der Weg zum letzten Segment des Mehrvolumen-Archives mit dem zentralen Katalog.

Normalerweise hat dieses Segment *.zip-Erweiterung und kleiner als andere.

segmentsInOrder string [][]

Wege zu jedem Segment, aber der letzte von mehrvolumen Zip-Archiv, die die Bestellung respektiert.

Normalerweise nennen sie filename.z01, filename.z02, …, filename.z(n-1).

loadOptions ArchiveLoadOptions

Die Optionen, bestehende Archiv mit zu laden.

Examples

Dieses Muster extrahiert in ein Katalog ein Archiv von drei Segmenten.

using (Archive a = new Archive("archive.zip", new string[] { "archive.z01", "archive.z02" }))
{
    a.ExtractToDirectory("destination");
}

Exceptions

EndOfStreamException

Sie können ZIP-Header nicht laden, da die bereitgestellten Dateien korrupt sind.

Properties

Entries

Er bekommt Beiträge von Aspose.Zip.ArchiveEntry Typ, der das Archiv darstellt.

public ReadOnlyCollection<archiveentry> Entries { get; }

Eigentumswert

ReadOnlyCollection &undlt; ArchiveEntry >

NewEntrySettings

Kompression und Verschlüsselung Einstellungen für neu hinzugefügt Aspose.Zip.ArchiveEntry Elemente.

public ArchiveEntrySettings NewEntrySettings { get; }

Eigentumswert

ArchiveEntrySettings

Methods

CreateEntries(VerzeichnisInfo, Bool)

Add to the archive all files and directories recurrently in the given directory.

public Archive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)

Parameters

directory DirectoryInfo

Verzeichnis zum Komprimieren.

includeRootDirectory bool

Angibt, ob die Root-Dokumentation selbst enthalten ist oder nicht.

Returns

Archive

Das Archiv mit enthaltenen Beiträgen.

Examples

using (Archive archive = new Archive())
{
    DirectoryInfo folder = new DirectoryInfo("C:\folder");
    archive.CreateEntries(folder);
    archive.Save("folder.zip");
}

Exceptions

DirectoryNotFoundException

Der Weg zu directory’ ist nicht gültig, z. B. auf einem unmapped-Drive.

SecurityException

Der Anrufgeber hat nicht die erforderliche Erlaubnis zum Zugriff auf directory'.

CreateEntries(String und Bool)

Add to the archive all files and directories recurrently in the given directory.

public Archive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)

Parameters

sourceDirectory string

Verzeichnis zum Komprimieren.

includeRootDirectory bool

Angibt, ob die Root-Dokumentation selbst enthalten ist oder nicht.

Returns

Archive

Das Archiv mit enthaltenen Beiträgen.

Examples

using (Archive archive = new Archive())
{
    archive.CreateEntries("C:\folder");
    archive.Save("folder.zip");
}

CreateEntry(String, String, Bool, ArchiveEntrySettings)

Erstellen Sie einen einzigen Eingang innerhalb des Archivs.

public ArchiveEntry CreateEntry(string name, string path, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

Der Name des Eingangs.

path string

Der vollständig qualifizierte Name der neuen Datei oder der relativen Dateiname, der komprimiert werden soll.

openImmediately bool

Wahrlich, wenn Sie die Datei sofort öffnen, öffnen Sie sonst die Datei auf Archiv-Speicher.

newEntrySettings ArchiveEntrySettings

Kompression und Verschlüsselung Einstellungen für das hinzugefügt Aspose.Zip.ArchiveEntry Element verwendet.

Returns

ArchiveEntry

Zip Eintrittsinstanz.

Examples

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(zipFile);
    }
}

Remarks

Der im Parameter angegebenen Dateiname beeinflusst nicht den Eingangsnamen.

Wenn die Datei sofort mit dem Parameter geöffnet wird, wird sie blockiert, bis das Archiv gespeichert wird.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

Der Anrufgeber hat nicht die erforderliche Erlaubnis für den Zugang.

ArgumentException

Die path’ ist leer, enthält nur weiße Räume oder enthält ungültige Zeichen.

UnauthorizedAccessException

Der Zugriff auf die Datei path" wird abgelehnt.

PathTooLongException

Die angegebenen path’, Dateinamen, oder beide überschreiten die Systemdefinierte maximale Länge. Zum Beispiel auf Windows-basierten Plattformen müssen die Paths weniger als 248 Zeichen und Dateinamen weniger als 260 Zeichen sein.

NotSupportedException

Die Datei bei path’ enthält eine Kolonne (:) in der Mitte der Zeile.

CreateEntry(String, Stream und ArchiveEntrySettings)

Erstellen Sie einen einzigen Eingang innerhalb des Archivs.

public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

Der Name des Eingangs.

source Stream

Der Eingangstrom für den Eingang.

newEntrySettings ArchiveEntrySettings

Kompression und Verschlüsselung Einstellungen für das hinzugefügt Aspose.Zip.ArchiveEntry Element verwendet.

Returns

ArchiveEntry

Zip Eintrittsinstanz.

Examples

using (var archive = new Archive(new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES256))))
{
    archive.CreateEntry("data.bin", new MemoryStream(new byte[] {0x00, 0xFF} ));
    archive.Save("archive.zip");
}

CreateEntry(String, FileInfo, Bool, ArchiveEntrySettings)

Erstellen Sie einen einzigen Eingang innerhalb des Archivs.

public ArchiveEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

Der Name des Eingangs.

fileInfo FileInfo

Die Metadaten der Datei werden komprimiert.

openImmediately bool

Wahrlich, wenn Sie die Datei sofort öffnen, öffnen Sie sonst die Datei auf Archiv-Speicher.

newEntrySettings ArchiveEntrySettings

Kompression und Verschlüsselung Einstellungen für das hinzugefügt Aspose.Zip.ArchiveEntry Element verwendet.

Returns

ArchiveEntry

Zip Eintrittsinstanz.

Examples

Komponieren Sie das Archiv mit enthaltenen Eingaben verschlüsselt mit verschiedenen Verschlüsselungsmethoden und Passwörtern jeweils.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    FileInfo fi1 = new FileInfo("data1.bin");
    FileInfo fi2 = new FileInfo("data2.bin");
    FileInfo fi3 = new FileInfo("data3.bin");
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", fi1, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")));
        archive.CreateEntry("entry2.bin", fi2, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new AesEcryptionSettings("pass2", EncryptionMethod.AES128)));
        archive.CreateEntry("entry3.bin", fi3, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new AesEcryptionSettings("pass3", EncryptionMethod.AES256)));
        archive.Save(zipFile);
    }
}

Remarks

Der im Parameter angegebenen Dateiname beeinflusst nicht den Eingangsnamen.

Wenn die Datei sofort mit dem Parameter geöffnet wird, wird sie blockiert, bis das Archiv gespeichert wird.

Exceptions

UnauthorizedAccessException

fileInfo’ is read-only or is a directory.

DirectoryNotFoundException

Der angegebenen Weg ist ungültig, z. B. auf einem unmapped Drive.

IOException

Die Datei ist bereits geöffnet.

CreateEntry(String, Stream, ArchiveEntrySettings, FileSystemInfo)

Erstellen Sie einen einzigen Eingang innerhalb des Archivs.

public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings, FileSystemInfo fileInfo)

Parameters

name string

Der Name des Eingangs.

source Stream

Der Eingangstrom für den Eingang.

newEntrySettings ArchiveEntrySettings

Kompression und Verschlüsselung Einstellungen für das hinzugefügt Aspose.Zip.ArchiveEntry Element verwendet.

fileInfo FileSystemInfo

Die Metadaten von Datei oder Ordner zu komprimieren.

Returns

ArchiveEntry

Zip Eintrittsinstanz.

Examples

Archiv mit verschlüsseltem Eingang.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", new MemoryStream(new byte[] {0x00, 0xFF} ), new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")), new FileInfo("data1.bin")); 
        archive.Save(zipFile);
    }
}

Remarks

Der im Parameter angegebenen Dateiname beeinflusst nicht den Eingangsnamen.

Sie können auf System.IO.DirectoryInfo beziehen, wenn die Eingabe ein Katalog ist.

Exceptions

InvalidOperationException

Zwei source’ und fileInfo’ sind null oder source’ ist null und fileInfo’ steht für den Katalog.

CreateEntry(String, Funktion < Stream>, ArchiveEntrySettings)

Erstellen Sie einen einzigen Eingang innerhalb des Archivs.

public ArchiveEntry CreateEntry(string name, Func<stream> streamProvider, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

Der Name des Eingangs.

streamProvider Func &undlt; Stream >

Die Methode, die den Eingangsstrom für den Eingang bietet.

newEntrySettings ArchiveEntrySettings

Kompression und Verschlüsselung Einstellungen für das hinzugefügt Aspose.Zip.ArchiveEntry Element verwendet.

Returns

ArchiveEntry

Zip Eintrittsinstanz.

Examples

Archiv mit verschlüsseltem Eingang.

System.Func&lt;Stream&gt; provider = delegate(){ return new MemoryStream(new byte[]{0xFF, 0x00}); };
using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", provider, new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")))); 
        archive.Save(zipFile);
    }
}

Remarks

Diese Methode gilt für .NET Framework 4.0 und höher und für .NET Standard 2.0 Version.

DeleteEntry(ArchiveEntry)

Entfernen Sie den ersten Auftritt des spezifischen Eingangs aus der Eingangsliste.

public Archive DeleteEntry(ArchiveEntry entry)

Parameters

entry ArchiveEntry

Eintritt zu entfernen aus der Eintrittsliste.

Returns

Archive

Das Archiv mit dem Eingang gelöscht.

Examples

Hier ist, wie Sie alle Beiträge mit Ausnahme des letzten entfernen können:

using (var archive = new Archive("archive.zip"))
{
    while (archive.Entries.Count &gt; 1)
        archive.DeleteEntry(archive.Entries[0]);
    archive.Save("last_entry.zip");
}

Exceptions

ObjectDisposedException

Das Archiv ist abgeschaltet.

DeleteEntry(Int)

Entfernen Sie den Eingang aus der Eingangsliste durch Index.

public Archive DeleteEntry(int entryIndex)

Parameters

entryIndex int

Der null-basierte Index des Eingangs zu entfernen.

Returns

Archive

Das Archiv mit dem Eingang gelöscht.

Examples

using (var archive = new TarArchive("two_files.zip"))
{
    archive.DeleteEntry(0);
    archive.Save("single_file.zip");
}

Exceptions

ObjectDisposedException

Archiv ist abgeschaltet.

ArgumentOutOfRangeException

entryIndex’ is less than 0.-or- entryIndex’ is equal to or greater than ‘Entries’ count.

Dispose()

Er erfüllt anwendungsdefinierte Aufgaben, die mit der Freisetzung, Freisetzung oder Wiederherstellung unverwalter Ressourcen verbunden sind.

public void Dispose()

Dispose(Bool)

Er erfüllt anwendungsdefinierte Aufgaben, die mit der Freisetzung, Freisetzung oder Wiederherstellung unverwalter Ressourcen verbunden sind.

protected virtual void Dispose(bool disposing)

Parameters

disposing bool

Ob verwaltete Ressourcen abgeschieden werden sollten.

ExtractToDirectory(String)

Entfernen Sie alle Dateien im Archiv in das angebotene Katalog.

public void ExtractToDirectory(string destinationDirectory)

Parameters

destinationDirectory string

Der Weg zum Katalog, um die extrahierten Dateien in.

Examples

using (var archive = new Archive("archive.zip")) 
{ 
   archive.ExtractToDirectory("C:\extracted");
}

Remarks

Wenn das Katalog nicht existiert, wird es erstellt.

Exceptions

ArgumentNullException

destinationDirectory’ is null.

PathTooLongException

Die angegebenen Path, Dateinamen oder beide überschreiten die Systemdefinierte maximale Länge. Zum Beispiel müssen auf Windows-basierten Plattformen Paths weniger als 248 Zeichen und Dateinamen weniger als 260 Zeichen sein.

SecurityException

Der Anrufgeber hat nicht die erforderliche Erlaubnis, das bestehende Direktorium zuzugreifen.

NotSupportedException

Wenn der Direktor nicht existiert, enthält der Pfad einen Zollkarakter (:) der nicht Teil eines Labels ist (“C:”).

ArgumentException

destinationDirectory’ is a zero-length string, contains only white space, or contains one or more invalid characters. You can query for invalid characters by using the System.IO.Path.GetInvalidPathChars method.-or- path is prefixed with, or contains, only a colon character (:).

IOException

Die durch den Weg angegebenen Katalog ist eine Datei. -or- Der Netzwerkname ist nicht bekannt.

InvalidDataException

Das falsche Passwort wurde bereitgestellt. - oder - Archiv ist korrupt.

Save(Stream, ArchiveSaveOptions)

Speichern Sie Archive für den bereitgestellten Strom.

public void Save(Stream outputStream, ArchiveSaveOptions saveOptions = null)

Parameters

outputStream Stream

Der Destinationstrom.

saveOptions ArchiveSaveOptions

Optionen für Archivsparnisse.

Examples

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry.bin", "data.bin");
        archive.Save(zipFile);
    }
}

Remarks

Es muss geschrieben werden.

Exceptions

ArgumentException

outputStream’ is not writable.

ObjectDisposedException

Das Archiv ist abgeschaltet.

Save(String, ArchiveSaveOptions)

Speichern Sie das Archiv auf die bereitgestellte Zieldatei.

public void Save(string destinationFileName, ArchiveSaveOptions saveOptions = null)

Parameters

destinationFileName string

Wenn der angegebenen Datei-Name auf eine bestehende Datei bezieht, wird sie übergeschrieben.

saveOptions ArchiveSaveOptions

Optionen für Archivsparnisse.

Examples

using (var archive = new Archive())
{
    archive.CreateEntry("entry.bin", "data.bin");
    archive.Save("archive.zip",  new ArchiveSaveOptions() { Encoding = Encoding.ASCII });
}

Remarks

Es ist möglich, ein Archiv auf dem gleichen Weg zu speichern, wie es heruntergeladen wurde. jedoch wird dies nicht empfohlen, weil dieser Ansatz Kopieren zu einer vorübergehenden Datei verwendet.

Exceptions

ArgumentNullException

destinationFileName’ is null.

SecurityException

Der Anrufgeber hat nicht die erforderliche Erlaubnis für den Zugang.

ArgumentException

Die destinationFileName’ ist leer, enthält nur weiße Räume oder enthält ungültige Zeichen.

UnauthorizedAccessException

Der Zugriff auf die Datei destinationFileName’ wird abgelehnt.

PathTooLongException

Die angegebenen destinationFileName’, Dateiname, oder beide überschreiten die systemdefinierte maximale Länge.Z. B. auf Windows-basierten Plattformen müssen die Spuren weniger als 248 Zeichen und die Dateinamen weniger als 260 Zeichen sein.

NotSupportedException

Datei bei destinationFileName’ enthält eine Kolonne (:) in der Mitte der Zeile.

FileNotFoundException

Die Datei ist nicht gefunden.

DirectoryNotFoundException

Der angegebenen Weg ist ungültig, z. B. auf einem unmapped Drive.

IOException

Die Datei ist bereits geöffnet.

SaveSplit(String, SplitArchiveSaveOptions)

Speichert das Multi-Volume-Archiv in das angebotene Ziele-Direktorien.

public void SaveSplit(string destinationDirectory, SplitArchiveSaveOptions options)

Parameters

destinationDirectory string

Der Weg zum Katalog, in dem Archivsegmente erstellt werden sollen.

options SplitArchiveSaveOptions

Optionen für die Archiv-Speicherung, einschließlich des Dateinamen.

Examples

using (Archive archive = new Archive())
{
    archive.CreateEntry("entry.bin", "data.bin");
    archive.SaveSplit(@"C:\Folder",  new SplitArchiveSaveOptions("volume", 65536));
}

Remarks

Diese Methode besteht aus mehreren () Dateien filename.z01, filename.z02, …, filename.z(n-1), filename.zip.

Es ist nicht möglich, bestehende Archiv-Multi-Volume zu machen.

Exceptions

InvalidOperationException

Dieses Archiv wurde von der bestehenden Quelle geöffnet.

NotSupportedException

Dieses Archiv wird mit der XZ-Methode komprimiert und verschlüsselt.

ArgumentNullException

destinationDirectory’ is null.

SecurityException

Der Anrufgeber hat nicht die erforderliche Erlaubnis, das Direktorium zuzugreifen.

ArgumentException

destinationDirectory’ contains invalid characters such as “, >, <, or |.

PathTooLongException

Der angegebenen Weg überschreitet die Systemdefinierte Höchstlänge.

ObjectDisposedException

Das Archiv ist abgeschaltet.

 Deutsch