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.

B1

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

Download