blob: b14288ac0ff9a8a467fcb44c0f8d4d29576496f6 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001SYNOPSIS
2 #include <files.h>
3
4 mixed *get_dir(string str)
5 mixed *get_dir(string str, int mask)
6
7BESCHREIBUNG
8 Benoetigt einen Pfad als erstes Argument und liefert ein Feld
9 (Array) mit Dateinamen bzw. Eigenschaften der gefundenen Dateien im
10 angegebenen Verzeichnis.
11
12 Liefert 0 zurueck, wenn es das Verzeichnis, in dem gesucht werden
13 soll, nicht gibt.
14
15 Der Dateinamen-Teil des Pfades darf "*" und "?" als Platzhalter
16 enthalten: jeder "*" steht fuer eine beliebige Anzahl Zeichen (oder
17 sich selber), "?" fuer ein beliebiges Zeichen. Entsprechend liefert
18 get_dir("/pfad/*") ein alphabetisch sortiertes Feld aller Dateien
19 im Verzeichnis "/pfad" oder ({ "/pfad/*" }), wenn es diese Datei
20 geben sollte.
21
22 Gibt man den Pfad eines Verzeichnisses mit abschliessendem "/" oder
23 "/." an (z. B. get_dir("/pfad/.")), so erhaelt man den Inhalt des
24 Verzeichnisses. Um Informationen ueber das Verzeichnis selber zu
25 erhalten, muss man den Pfad des Verzeichnisses angeben.
26
27 Das optionale zweite Argument ist eine Bitmaske, mit der man
28 angeben kann, welche Informationen man ueber die angegebenen
29 Dateien erhalten moechte.
30
31 GETDIR_EMPTY (0x00) get_dir() liefert ein leeres Feld (nicht
32 wirklich sinnvoll)
33 GETDIR_NAMES (0x01) liefert die alphabetisch sortierten
34 Dateinamen.
35 GETDIR_SIZES (0x02) liefert die unsortierten Dateigroessen
36 (file_size()), Verzeichnisse haben die
37 Dateigroesse FSIZE_DIR (-2).
38 GETDIR_DATES (0x04) liefert die unsortierten Zeiten der jeweils
39 letzten Aenderung in Sekunden seit dem
40 01.01.1970.
41 GETDIR_ACCESS (0x40) liefert die unsortierten Zeiten des jeweils
42 letzten Zugriffes in Sekunden seit dem
43 01.01.1970.
44 GETDIR_MODES (0x80) liefert die Filemode-Maske
45
46 GETDIR_ALL (0xDF) Liefert all Werte zurueck.
47
48 GETDIR_PATH (0x10) Dateinamen werden als volle Pfade geliefert.
49 (ein ev. fehlendes GETDIR_NAMES wird als
50 vorhanden angenommen).
51 GETDIR_UNSORTED (0x20) Das Ergebnis wird nicht sortiert.
52
53 Wichtig: Man muss GETDIR_NAMES|GETDIR_UNSORTED verwenden, wenn man
54 die Eintraege in der selben Reihenfolge wie bei GETDIR_SIZES und
55 GETDIR_DATES haben moechte.
56
57 Die Eintraege in der Bitmaske koennen miteinander kombiniert
58 werden.
59
60BEISPIELE
61 Funktion Rueckgabewert
62 -------------------------------------------------------------------
63 get_dir("/obj/.") Alle Dateien, die im Verzeichnis
64 /obj enthalten sind.
65 get_dir("/obj/") Wie get_dir("/obj/").
66
67 get_dir("/obj/fackel.c") ({ "fackel.c" }), sofern
68 /obj/fackel.c existiert (als
69 Datei oder Verzeichnis), ansonsten
70 ({}), sofern /obj ein Verzeichnis
71 ist, ansonsten 0.
72
73 get_dir("/obj/*") ({ "*" }), sofern * existiert.
74 Ansonsten und normalerweise ein
75 alphabetisch sortiertes Feld mit
76 den Namen aller Dateien und
77 Verzeichnisse in /obj, sofern /obj
78 ein Verzeichnis ist, ansonsten 0.
79
80 get_dir("/obj/fackel.c", GETDIR_SIZES)
81 ({ <Groesse von /obj/fackel.c> }),
82 sofern /obj/fackel.c existiert.
83 get_dir("/obj/.", GETDIR_NAMES) Wie get_dir("/obj/.").
84 get_dir("/obj/.", GETDIR_SIZES) Ein unsortiertes Feld mit den
85 Groessen der Dateien in /obj.
86 get_dir("/obj/.", GETDIR_NAMES|GETDIR_SIZES|GETDIR_DATES)
87 oder kuerzer
88 get_dir("/obj/.", GETDIR_ALL) Ein eindimensionales und nach
89 Namen sortiertes Feld, das fuer
90 jede Datei in /obj den Namen, die
91 Groesse und den Zeitpunkt der
92 letzten Aenderung enthaelt, z.B.
93 ({
94 "axt.c" , 927, 994539583,
95 "fackel.c", 1283, 998153903,
96 }).
97
98 get_dir("/obj/fackel.c", GETDIR_NAMES|GETDIR_PATH)
99 ({ "/obj/fackel.c" }), sofern
100 vorhanden.
101 get_dir("/obj/fackel.c", GETDIR_PATH) Kurzform dafuer.
102
103 transpose_array(({ get_dir(str, GETDIR_NAMES|GETDIR_UNSORTED)
104 , get_dir(str, GETDIR_SIZES)
105 , get_dir(str, GETDIR_DATES) }));
106 Liefert ein unsortiertes Feld mit Feldern, von denen ein jedes
107 Name, Groesse und Zeit einer Datei enthaelt, z. B.
108 ({
109 ({ "fackel.c", 1283, 998153903 }),
110 ({ "axt.c" , 927, 994539583 }),
111 }).
112SIEHE AUCH
113 cat(E), mkdir(E), rmdir(E), file_size(E)