Lpc Manpages

SYNOPSIS
        #include <files.h>

        mixed * get_dir(string str)
        mixed * get_dir(string str, int mask)

BESCHREIBUNG
        Benoetigt einen Pfad als erstes Argument und liefert ein Feld
        (Array) mit Dateinamen bzw. Eigenschaften der gefundenen Dateien im
        angegebenen Verzeichnis.

        Liefert 0 zurueck, wenn es das Verzeichnis, in dem gesucht werden
        soll, nicht gibt.

        Der Dateinamen-Teil des Pfades darf "*" und "?" als Platzhalter
        enthalten: jeder "*" steht fuer eine beliebige Anzahl Zeichen (oder
        sich selber), "?" fuer ein beliebiges Zeichen. Entsprechend liefert
        get_dir("/pfad/*") ein alphabetisch sortiertes Feld aller Dateien
        im Verzeichnis "/pfad" oder ({ "/pfad/*" }), wenn es diese Datei
        geben sollte.

        Gibt man den Pfad eines Verzeichnisses mit abschliessendem "/" oder
        "/." an (z. B. get_dir("/pfad/.")), so erhaelt man den Inhalt des
        Verzeichnisses. Um Informationen ueber das Verzeichnis selber zu
        erhalten, muss man den Pfad des Verzeichnisses angeben.

        Das optionale zweite Argument ist eine Bitmaske, mit der man
        angeben kann, welche Informationen man ueber die angegebenen
        Dateien erhalten moechte.

        GETDIR_EMPTY    (0x00)  get_dir() liefert ein leeres Feld (nicht
                                wirklich sinnvoll)
        GETDIR_NAMES    (0x01)  liefert die alphabetisch sortierten
                                Dateinamen.
        GETDIR_SIZES    (0x02)  liefert die unsortierten Dateigroessen
                                (file_size()), Verzeichnisse haben die
                                Dateigroesse FSIZE_DIR (-2).
        GETDIR_DATES    (0x04)  liefert die unsortierten Zeiten der jeweils
                                letzten Aenderung in Sekunden seit dem
                                01.01.1970.
        GETDIR_ACCESS   (0x40)  liefert die unsortierten Zeiten des jeweils
                                letzten Zugriffes in Sekunden seit dem
                                01.01.1970.
        GETDIR_MODES    (0x80)  liefert die Filemode-Maske

        GETDIR_ALL      (0xDF)  Liefert all Werte zurueck.

        GETDIR_PATH     (0x10)  Dateinamen werden als volle Pfade geliefert.
                                (ein ev. fehlendes GETDIR_NAMES wird als
                                vorhanden angenommen).
        GETDIR_UNSORTED (0x20)  Das Ergebnis wird nicht sortiert.

        Wichtig: Man muss GETDIR_NAMES|GETDIR_UNSORTED verwenden, wenn man
        die Eintraege in der selben Reihenfolge wie bei GETDIR_SIZES und
        GETDIR_DATES haben moechte.

        Die Eintraege in der Bitmaske koennen miteinander kombiniert
        werden.

ANMERKUNGEN
        Der als Argument angegebene Pfad wird vor Benutzung von valid_read()
        im Master der Mudlib verarbeitet. Hierbei kann die Mudlib eine
        Normalisierung vornehmen (z.B. fuehrende und endstaendige "/"
        entfernen). Dann fuehrt dann u.U. zu erwarteten Resultaten (z.B. dass
        get_dir("/dir/", ...) nicht den Inhalt von /dir/ zurueckgibt).
        Compat mode: GETDIR_PATH liefert die Pfade ohne fuehrenden /.

BEISPIELE
        Funktion                         Rueckgabewert
        -------------------------------------------------------------------
        get_dir("/obj/.")                Alle Dateien, die im Verzeichnis
                                         /obj enthalten sind.
        get_dir("/obj/")                 Wie get_dir("/obj/").

        get_dir("/obj/schwert.c")        ({ "schwert.c" }), sofern
                                         /obj/schwert.c existiert (als
                                         Datei oder Verzeichnis), ansonsten
                                         ({}), sofern /obj ein Verzeichnis
                                         ist, ansonsten 0.

        get_dir("/obj/*")                ({ "*" }), sofern * existiert.
                                         Ansonsten und normalerweise ein
                                         alphabetisch sortiertes Feld mit
                                         den Namen aller Dateien und
                                         Verzeichnisse in /obj, sofern /obj
                                         ein Verzeichnis ist, ansonsten 0.

        get_dir("/obj/schwert.c", GETDIR_SIZES)
                                         ({ <Groesse von /obj/schwert.c> }),
                                         sofern /obj/schwert.c existiert.
        get_dir("/obj/.", GETDIR_NAMES)  Wie get_dir("/obj/.").
        get_dir("/obj/.", GETDIR_SIZES)  Ein unsortiertes Feld mit den
                                         Groessen der Dateien in /obj.
        get_dir("/obj/.", GETDIR_NAMES|GETDIR_SIZES|GETDIR_DATES)
            oder kuerzer
        get_dir("/obj/.", GETDIR_ALL)    Ein eindimensionales und nach
                                         Namen sortiertes Feld, das fuer
                                         jede Datei in /obj den Namen, die
                                         Groesse und den Zeitpunkt der
                                         letzten Aenderung enthaelt, z.B.
                                           ({
                                              "axt.c"    ,  927, 994539583,
                                              "schwert.c", 1283, 998153903,
                                           }).

        get_dir("/obj/schwert.c", GETDIR_NAMES|GETDIR_PATH)
                                         ({ "/obj/sword.c" }), sofern
                                         vorhanden.
        get_dir("/obj/schwert.c", GETDIR_PATH)  Kurzform dafuer.

        transpose_array(({ get_dir(str, GETDIR_NAMES|GETDIR_UNSORTED)
                         , get_dir(str, GETDIR_SIZES)
                         , get_dir(str, GETDIR_DATES) }));
        Liefert ein unsortiertes Feld mit Feldern, von denen ein jedes
        Name, Groesse und Zeit einer Datei enthaelt, z. B.
          ({
             ({ "schwert.c", 1283, 998153903 }),
             ({ "axt.c"    ,  927, 994539583 }),
          }).

GESCHICHTE
        LDMud 3.2.9: GETDIR_PATH eingefuehrt.
        LDMud 3.2.11: GETDIR_ACCESS und GETDIR_MODES eingefuehrt.

SIEHE AUCH
        mkdir(E), rmdir(E), file_size(E), write_file(E), write_bytes(E),
        read_file(E), read_bytes(E)