MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | SYNOPSIS |
| 2 | #include <files.h> |
| 3 | |
| 4 | mixed *get_dir(string str) |
| 5 | mixed *get_dir(string str, int mask) |
| 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 | |
| 60 | BEISPIELE |
| 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 | }). |
| 112 | SIEHE AUCH |
| 113 | cat(E), mkdir(E), rmdir(E), file_size(E) |