Bezeichnung
DirectoryItems -- durchläuft alle Elemente in einem Verzeichnis (V7.0)
Übersicht
f = DirectoryItems(d$)
Beschreibung
Dieser Befehl kann zusammen mit der generischen For-Anweisung verwendet werden, um alle Dateien und Unterverzeichnisse in einem Verzeichnis zu durchlaufen. Er gibt eine Iterator-Funktion zurück, die zwei Werte für jedes Verzeichnisobjekt zurückgibt: Der erste Rückgabewert ist der Name der Datei oder des Verzeichnisses, der zweite Rückgabewert ist eine Tabelle mit zusätzlichen Informationen über das Verzeichniselement. Sobald alle Verzeichniseinträge zurückgegeben wurden, gibt die Iterator-Funktion Nil zurück, um die generische For-Anweisung zu beenden.

Siehe Generische Version der For-Anweisung für Details.

Die Tabelle, die von DirectoryItems() als zweiter Rückgabewert zurückgegeben wird, wenn sie in einer generischen For-Schleife verwendet wird, werden die folgenden Tags initialisiert:

Type:
Dies ist #DOSTYPE_FILE, wenn der Eintrag eine Datei ist oder #DOSTYPE_DIRECTORY, falls der Eintrag ein Verzeichnis ist.

Size:
Dieser Tag ist nur vorhanden, wenn der Eintrag eine Datei ist. In diesem Fall enthält dieser Tag die Größe der Datei in Bytes.

Flags:
Dieser Tag enthält eine Kombination von Schutzbits der Datei oder des Verzeichnisses. Siehe Schutzbits für Details.

Time:
Dieser Tag enthält eine Zeichenkette, die die Zeit enthält, zu der die Datei oder das Verzeichnis zuletzt geändert wurde. Die Zeichenkette ist immer im Format dd-mmm-yyyy hh:mm:ss. Z.B: 08-Nov-2004 14:32:13.

LastAccessTime:
Dieser Tag erhält eine Zeichenkette, welche die Zeit enthält, wann zuletzt auf die Datei oder dem Verzeichnis zugegriffen wurde. Dieses Attribut wird bei AmigaOS nicht unterstützt.

CreationTime:
Dieser Tag erhält eine Zeichenkette, welche die Zeit enthält, wann die Datei oder das Verzeichnis erstellt wurde. Dieses Attribut wird nur bei Windows unterstützt.

Comment:
Dieser Tag wird den Kommentar einer Datei enthalten. Dies wird nur durch die Amiga-Versionen unterstützt.

Beachten Sie, dass Sie alle Dateien und Unterverzeichnisse innerhalb eines Verzeichnisses auch manuell durchlaufen können, indem Sie die Befehle OpenDirectory(), NextDirectoryEntry() und CloseDirectory() benutzen. Die Verwendung von DirectoryItems() ist jedoch oft bequemer.

Siehe auch CountDirectoryEntries().

Eingaben
d$
Verzeichnis, welches durchlaufen wird
Rückgabewerte
f
Iterator-Funktion für die generische For-Schleife
Beispiel
Function p_TraverseDir(d$, indent)
   For s$,t In DirectoryItems(d$)
      DebugPrint(RepeatStr(" ", indent) .. s$, t.time)
      If t.type = #DOSTYPE_DIRECTORY
        p_TraverseDir(FullPath(d$, s$), indent + 8)
      EndIf
   Next
EndFunction

p_TraverseDir("images", 0)
Die Funktion p_TraverseDir() kann rekursiv alle Dateien und Unterverzeichnisse im angegebenen Verzeichnis ausgeben. Der Beispielaufruf gibt den Inhalt eines Verzeichnisses mit dem Namen "images" aus, das relativ zum Pfad des Skripts gespeichert werden muss.

Navigation zeigen