3.2 Archive als Verzeichnisse

Wenn der Tag InstallAdapter auf True gesetzt wird, greift das XAD-Plugin in den Verzeichnishandler ein, damit Hollywood glaubt, dass die vom XAD-System unterstützten Archive normale Verzeichnisse sind. Dies ermöglicht Ihnen alle Dateien und Verzeichnisse innerhalb eines Archivs mit normalen Befehlen aus Hollywoods DOS-Bibliothek zu durchlaufen.

Zum Beispiel wenn das Archiv test.rar heisst, können Sie fürs Durchlaufen den folgenden Code verwenden:

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

Wenn Sie nicht aus dem Stammverzeichnis innerhalb von test.rar anfangen möchten, können Sie auch bequem von einem Unterverzeichnis starten, indem Sie einfach so tun, als wäre test.rar ein Verzeichnis. Z.B. um auf ein Unterverzeichnis namens files innerhalb von test.rar zuzugreifen, gehen Sie einfach wie folgt vor:

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

Schließlich ist es auch möglich, alle Dateien und Verzeichnisse innerhalb eines Archivs rekursiv zu durchlaufen. Hier ist eine Funktion, die das tut:

 
Function p_DumpArchive(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_DumpArchive(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 Archivs auszugeben, rufen Sie einfach folgende Funktion auf:

 
p_DumpArchive("test.rar", 0)

Es wird dann einen schönen Baum des Archivinhalts ausgeben.


Navigation zeigen