MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 1 | SYNOPSIS |
| 2 | #include <files.h> |
| 3 | |
Zesstra | d59c389 | 2019-11-28 20:53:39 +0100 | [diff] [blame] | 4 | mixed * get_dir(string str) |
| 5 | mixed * get_dir(string str, int mask) |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 6 | |
| 7 | BESCHREIBUNG |
| 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 | |
Zesstra | d59c389 | 2019-11-28 20:53:39 +0100 | [diff] [blame] | 60 | ANMERKUNGEN |
| 61 | Der als Argument angegebene Pfad wird vor Benutzung von valid_read() |
| 62 | im Master der Mudlib verarbeitet. Hierbei kann die Mudlib eine |
| 63 | Normalisierung vornehmen (z.B. fuehrende und endstaendige "/" |
| 64 | entfernen). Dann fuehrt dann u.U. zu erwarteten Resultaten (z.B. dass |
| 65 | get_dir("/dir/", ...) nicht den Inhalt von /dir/ zurueckgibt). |
| 66 | Compat mode: GETDIR_PATH liefert die Pfade ohne fuehrenden /. |
| 67 | |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 68 | BEISPIELE |
| 69 | Funktion Rueckgabewert |
| 70 | ------------------------------------------------------------------- |
| 71 | get_dir("/obj/.") Alle Dateien, die im Verzeichnis |
| 72 | /obj enthalten sind. |
| 73 | get_dir("/obj/") Wie get_dir("/obj/"). |
| 74 | |
Zesstra | d59c389 | 2019-11-28 20:53:39 +0100 | [diff] [blame] | 75 | get_dir("/obj/schwert.c") ({ "schwert.c" }), sofern |
| 76 | /obj/schwert.c existiert (als |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 77 | Datei oder Verzeichnis), ansonsten |
| 78 | ({}), sofern /obj ein Verzeichnis |
| 79 | ist, ansonsten 0. |
| 80 | |
| 81 | get_dir("/obj/*") ({ "*" }), sofern * existiert. |
| 82 | Ansonsten und normalerweise ein |
| 83 | alphabetisch sortiertes Feld mit |
| 84 | den Namen aller Dateien und |
| 85 | Verzeichnisse in /obj, sofern /obj |
| 86 | ein Verzeichnis ist, ansonsten 0. |
| 87 | |
Zesstra | d59c389 | 2019-11-28 20:53:39 +0100 | [diff] [blame] | 88 | get_dir("/obj/schwert.c", GETDIR_SIZES) |
| 89 | ({ <Groesse von /obj/schwert.c> }), |
| 90 | sofern /obj/schwert.c existiert. |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 91 | get_dir("/obj/.", GETDIR_NAMES) Wie get_dir("/obj/."). |
| 92 | get_dir("/obj/.", GETDIR_SIZES) Ein unsortiertes Feld mit den |
| 93 | Groessen der Dateien in /obj. |
| 94 | get_dir("/obj/.", GETDIR_NAMES|GETDIR_SIZES|GETDIR_DATES) |
| 95 | oder kuerzer |
| 96 | get_dir("/obj/.", GETDIR_ALL) Ein eindimensionales und nach |
| 97 | Namen sortiertes Feld, das fuer |
| 98 | jede Datei in /obj den Namen, die |
| 99 | Groesse und den Zeitpunkt der |
| 100 | letzten Aenderung enthaelt, z.B. |
Zesstra | d59c389 | 2019-11-28 20:53:39 +0100 | [diff] [blame] | 101 | ({ |
| 102 | "axt.c" , 927, 994539583, |
| 103 | "schwert.c", 1283, 998153903, |
| 104 | }). |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 105 | |
Zesstra | d59c389 | 2019-11-28 20:53:39 +0100 | [diff] [blame] | 106 | get_dir("/obj/schwert.c", GETDIR_NAMES|GETDIR_PATH) |
| 107 | ({ "/obj/sword.c" }), sofern |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 108 | vorhanden. |
Zesstra | d59c389 | 2019-11-28 20:53:39 +0100 | [diff] [blame] | 109 | get_dir("/obj/schwert.c", GETDIR_PATH) Kurzform dafuer. |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 110 | |
| 111 | transpose_array(({ get_dir(str, GETDIR_NAMES|GETDIR_UNSORTED) |
| 112 | , get_dir(str, GETDIR_SIZES) |
| 113 | , get_dir(str, GETDIR_DATES) })); |
| 114 | Liefert ein unsortiertes Feld mit Feldern, von denen ein jedes |
| 115 | Name, Groesse und Zeit einer Datei enthaelt, z. B. |
Zesstra | d59c389 | 2019-11-28 20:53:39 +0100 | [diff] [blame] | 116 | ({ |
| 117 | ({ "schwert.c", 1283, 998153903 }), |
| 118 | ({ "axt.c" , 927, 994539583 }), |
| 119 | }). |
| 120 | |
| 121 | GESCHICHTE |
| 122 | LDMud 3.2.9: GETDIR_PATH eingefuehrt. |
| 123 | LDMud 3.2.11: GETDIR_ACCESS und GETDIR_MODES eingefuehrt. |
| 124 | |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 125 | SIEHE AUCH |
Zesstra | d59c389 | 2019-11-28 20:53:39 +0100 | [diff] [blame] | 126 | mkdir(E), rmdir(E), file_size(E), write_file(E), write_bytes(E), |
| 127 | read_file(E), read_bytes(E) |