@DIRECTORY id, dir$[, table]
dir$
angegebene Verzeichnis in Ihr Applet oder Programm
einzubinden, wenn Sie Ihr Skript kompilieren. Auf diese Weise
können Sie beim Kompilieren Ihres Skripts eine Vielzahl von
Dateien bequem in Ihr Applet oder Programm verlinken, da Sie
nur eine zusätzliche Zeile zu Ihrem Skript anstelle von einzelnen
Zeilen für jede Datei hinzufügen müssen.
Wenn Sie @DIRECTORY
verwenden, müssen Sie den Befehl GetDirectoryEntry()
verwenden, um auf einzelne Dateien und Unterverzeichnisse zuzugreifen,
die in dem Verzeichnis gespeichert sind, das Sie mit Ihrem Applet
oder Ihrem Programm verknüpft haben. Siehe unten für ein Beispiel.
Falls Sie Ihr Skript nur mit dem Hollywood-Interpreter ausführen,
gibt GetDirectoryEntry() die Zeichenkette
zurück, die Sie an das Skript übergeben haben, sodass das Skript
unabhängig davon identisch funktioniert, ob Sie es als Skript
mit dem Hollywood-Interpreter ausführen oder wenn Sie es als
Applet oder Programm kompiliert haben. Siehe GetDirectoryEntry für Details.
Diese Präprozessor-Anweisung akzeptiert auch ein optionales Tabellenargument, mit dem weitere Optionen konfiguriert werden können. Die folgenden Tags werden derzeit vom optionalen Tabellenargument unterstützt:
Recursive:
True
gesetzt ist, werden in @DIRECTORY
alle Dateien in den Unterverzeichnissen von dir$
ebenfalls
eingebunden. Dies ist die Standardeinstellung. Setzen Sie den
Wert auf False
, wenn Sie nicht möchten, dass @DIRECTORY
auch
Dateien und Verzeichnisse in Unterverzeichnisse berücksichtigen
soll.
Link:
False
, wenn dieses Verzeichnis
beim Kompilieren Ihres Skripts nicht mit Ihrem Programm/Applet
verknüpft werden soll. Dieses Feld ist standardmäßig auf True
eingestellt, was bedeutet, dass das Verzeichnis mit Ihrem Programm/Applet
verknüpft wird, wenn sich Hollywood im Kompilierungsmodus befindet.
Beachten Sie, dass @DIRECTORY
nicht nur alle Dateien und Unterverzeichnisse
in dir$
in Ihr Applet oder Programm einbindet, sondern auch
ein Verzeichnisobjekt erstellt, das dann mit allen Befehlen
verwendet werden kann, die Verzeichnisobjekte unterstützen,
z.B. NextDirectoryEntry() und
RewindDirectory(). Es ist sogar möglich,
alle Dateien und Unterverzeichnisse zu durchlaufen, die über
@DIRECTORY
mit Ihrem Skript verknüpft sind. Siehe unten für
ein Beispiel.
Beachten Sie schließlich, dass nur Datei-/Verzeichnisnamen, -größen und der tatsächliche Inhalt der Dateien mit Ihrem Applet oder Programm verknüpft werden. Dateiattribute wie Schutzbits, Datumsstempel und Kommentare werden nicht verknüpft. Wenn Sie also versuchen sie abzufragen, werden stattdessen einige Standardwerte angezeigt.
Wenn Sie zur Laufzeit Verzeichnisse öffnen möchten, verwenden Sie bitte den Befehl OpenDirectory().
Siehe auch CloseDirectory() und MonitorDirectory().
@DIRECTORY 1, "data" LoadBrush(1, GetDirectoryEntry("data/title.png"))Der obige Code zeigt, wie Sie alle Dateien und Unterverzeichnisse im Verzeichnis
data
mit Ihrem Applet oder Programm verknüpfen
und dann die Datei title.png
aus diesem Verzeichnis in
Pinsel 1 laden. Beachten Sie, dass das Skript nicht als Applet
oder Programm kompiliert wurde. LoadBrush()
lädt die Datei einfach aus data/title.png
. Falls das
Skript als Applet oder Programm kompiliert wurde, wird die Datei
title.png
jedoch direkt aus dem Applet oder Programm
geladen, da sie mit diesem verknüpft wurde.
@DIRECTORY 1, "data" Function p_DumpDirs(d$, indent) Local handle If d$ <> "" handle = OpenDirectory(Nil, GetDirectoryFile(1, d$)) Else handle = 1 EndIf Local e = NextDirectoryEntry(handle) While e <> Nil If e.Type = #DOSTYPE_DIRECTORY Then e.size = 0 NPrint(RepeatStr(" ", indent) .. IIf(e.type = #DOSTYPE_FILE, "File:", "Directory:") .. " " .. e.name .. " " .. e.size .. " " .. HexStr(e.flags) .. " " .. e.time) If e.Type = #DOSTYPE_DIRECTORY Then p_DumpDirs(FullPath(d$, e.name), indent + 4) e = NextDirectoryEntry(handle) Wend If GetType(handle) = #LIGHTUSERDATA Then CloseDirectory(handle) EndFunction p_DumpDirs("", 0)Der obige Code zeigt, wie alle Dateien und Verzeichnisse in einem Verzeichnis rekursiv ausgegeben werden, das mit dem Applet oder Programm verknüpft wurde.