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.