3.2 Zip Archive als Verzeichnisse

Wenn Sie den Tag InstallAdapter auf True setzen, hängt sich das Zip-Plugin in Hollywoods Datei und Verzeichnis-Handler ein, damit Hollywood glaubt, dass Zip-Archive normale Verzeichnisse sind. Auf diese Weise können Sie alle Dateien und Verzeichnisse in einem Zip-Archiv mithilfe normaler Befehle aus der Dateisystembibliothek (DOS) von Hollywood durchlaufen.

Um beispielsweise alle Dateien und Verzeichnisse in einer Datei mit dem Namen test.zip zu durchlaufen, können Sie den folgenden Code verwenden:

 
OpenDirectory(1, "test.zip")
Local e = NextDirectoryEntry(1)
While e <> Nil
    DebugPrint(e.name)
    e = NextDirectoryEntry(1)
Wend
CloseDirectory(1)

Wenn Sie nicht vom Stammverzeichnis innerhalb von test.zip aus starten möchten, können Sie auch bequem von einem Unterverzeichnis aus starten, indem Sie einfach vorgeben, dass test.zip ein Verzeichnis ist. Z.B. um auf ein Unterverzeichnis mit dem Namen files in test.zip zuzugreifen, gehen Sie wie folgt vor:

 
OpenDirectory(1, "test.zip/files")

Schließlich ist es auch möglich, rekursiv alle Dateien und Verzeichnisse in einem Zip-Archiv zu durchlaufen. Hier ist eine Funktion, die das tut:

 
Function p_DumpZip(d$, idt)
    Local id = OpenDirectory(Nil, d$)
    Local e = NextDirectoryEntry(id)
    While e <> Nil
        If e.Type = #DOSTYPE_DIRECTORY
            DebugPrint(RepeatStr(" ", idt) .. "+", e.name)
            p_DumpZip(FullPath(d$, e.name), idt + 4)
        Else
            DebugPrint(RepeatStr(" ", idt) .. "",e.name,e.size,e.time)
        EndIf
        e = NextDirectoryEntry(id)
    Wend
    CloseDirectory(id)
EndFunction

Um den Inhalt eines Zip-Archivs abzulegen, rufen Sie einfach folgende Funktion auf:

 
p_DumpZip("test.zip", 0)

Es wird dann einen schönen Baum des Inhalts des Zip-Archivs ausgeben.


Navigation zeigen