Inhaltsverzeichnis
28.1.2 Klasse Uncompress
Für das De-Komprimieren einer Datei oder das Entpacken einer einzelnen Datei aus einem Archiv sind vor allem die Eigenschaft Type und die Methode Uncompress.File informativ, denn bevor Sie eine Methode dieser Klasse verwenden können, müssen Sie den Kompressionstreiber auswählen, den Sie zum Entpacken verwenden wollen. Zur Wahl stehen die zwei Typen: zlib oder bzlib2.
Die Methode Uncompress.File hat folgende Syntax:
SUB File ( Source AS String, Target AS String )
Source: Pfad zur Archiv-Datei. Target: Pfad der ausgepackten Datei. Existiert die ausgepackte Datei, dann wird diese ohne Rückfrage überschrieben.
Abbildung 28.1.2.1: Programm zum Entpacken einer Archiv-Datei nach zwei unterschiedlichen Algorithmen
28.1.2.1 Projekt Un_Compress
Auch für dieses Projekt wird der vollständige Quelltext angegeben und in den folgenden Kommentaren kurz erläutert:
' Gambas class file ' Um eine komprimierte Datei zu entpacken, benötigen Sie die Komponente gb.compress. Private sFileSource As String Private sFileTarget As String Public Sub Form_Open() FMain.Center FMain.Resizable = False End ' Form_Open() Public Sub btnUnCompressZLIB_Click() Dim UCp As New Uncompress Dialog.Filter = ["*.gz", "Archiv-Datei", "*", "Alle Dateien"] Dialog.Path = User.Home Dialog.Title = "Wählen Sie eine Datei aus!" If Dialog.OpenFile() Then Return sFileSource = Dialog.Path sFileTarget = File.Dir(Dialog.Path) &/ File.BaseName(Dialog.Path) UCp.Type = "zlib" UCp.File(sFileSource, sFileTarget) End ' UnCompressZLIB Public Sub btnUnCompressBZLIB2_Click() Dim UCp As New Uncompress Dialog.Filter = ["*.bz2", "Archiv-Datei", "*", "Alle Dateien"] Dialog.Path = User.Home Dialog.Title = "Wählen Sie eine Datei aus!" If Dialog.OpenFile() Then Return sFileSource = Dialog.Path sFileTarget = File.Dir(Dialog.Path) &/ File.BaseName(Dialog.Path) UCp.Type = "bzlib2" UCp.File(sFileSource, sFileTarget) End ' UnCompressBZLIB2 Public Sub btnClose_Click() FMain.Close End ' btnClose_Click()
28.1.2.1 Kommentar
- Zuerst wird ein Uncompress-Objekt erzeugt.
- Dann können Sie im Dialog die Archiv-Datei auswählen. Der Datei-Filter ist im Projekt auf gz-Archive und bz2-Archive eingestellt. Diese Einstellungen folgen den Empfehlungen im Zusammenhang mit den eingesetzten 2 Algorithmen. Die entpackte Datei wird hier im gleichen Verzeichnis abgespeichert wie die Archiv-Datei.
- Abschließend wird die ausgewählte Archiv-Datei nach dem gewählten Algorithmus (Type) unter Verwendung der Pfade für die Quell- und Ziel-Datei entpackt.

