Die Funktion Get 4D folder gibt den Pfadnamen zum aktiven 4D Ordner zurück, bzw. zum Ordner der 4D Umgebung, wenn der Parameter Ordner übergeben wurde. Über diese Funktion erhalten Sie den aktuellen Pfadnamen der Ordner, welche die 4D Anwendung verwendet. Mit dieser Funktion stellen Sie sicher, dass Ihr Code auf jeder Plattform funktioniert, die mit einem lokalisierten System läuft.
In Ordner übergeben Sie eine der folgenden Konstanten unter dem Thema 4D Umgebung:
Konstante
Typ
Wert
4D Client database folder
Lange Ganzzahl
3
Active 4D Folder
Lange Ganzzahl
0
Current resources folder
Lange Ganzzahl
6
Data folder
Lange Ganzzahl
9
Database folder
Lange Ganzzahl
4
Database folder Unix syntax
Lange Ganzzahl
5
HTML Root folder
Lange Ganzzahl
8
Licenses folder
Lange Ganzzahl
1
Logs folder
Lange Ganzzahl
7
Es folgt die Beschreibung der einzelnen Ordner
Definitionen
{Festplatte} ist die Platte, auf der das Betriebssystem installiert ist.
Benutzername ist der Name des Benutzers, der die aktuelle Sitzung geöffnet hat.
4D Datenbank Ordner, der auf jedem Client Rechner angelegt wird, zum Speichern von Dateien und Ordnern, die zur Datenbank gehören (Ressourcen, Plug-Ins, Ordner Resources, etc.). Der Ordner liegt auf dem Client-Rechner an folgender Stelle:
Unter Windows 7 und höher: {Festplatte}:\Users\<Benutzername>\AppData\Local\4D\<DatenbankName_Adresse>
Auf OS X: {Festplatte}:Users:<Benutzername>:Library:Caches:4D:<DatenbankName_Adresse>
Ordner mit der Strukturdatei der Datenbank. Der Pfadname wird in der standardmäßigen Syntax der aktuellen Plattform dargestellt. In der Client-Anwendung entspricht diese Konstante exakt der bisherigen Konstante 4D Client Database Folder: Sie gibt den Pfadnamen des lokal erstellten Ordners zurück.
Ordner mit der Strukturdatei der Datenbank. Diese Konstante bezeichnet denselben Ordner wie die vorige, der Pfadname wird jedoch in der Unix Syntax (Posix) vom Typ /Users/... dargestellt. Diese Syntax wird hauptsächlich mit dem Befehl LAUNCH EXTERNAL PROCESS unter OS X zurückgegeben.
Ordner Resources der Datenbank. Dieser Ordner enthält zusätzliche Elemente (Bilder, Text) für die Datenbankoberfläche. Eine Komponente kann einen eigenen Ordner Resources haben. Der Ordner Resources liegt neben der Struktur der Datenbank. Im Client/Server-Betrieb kann dieser Ordner zur Übertragung eigener Elemente zwischen Server- und Client-Rechner dienen. Der Inhalt dieses Ordners wird automatisch aktualisiert, wenn sich der Client-Rechner anmeldet. Im Client/Server-Betrieb werden alle diesem Ordner zugewiesenen Referenz-Mechanismen unterstützt(Ordner .lproj, XLIFF, Bilder, etc.) 4D bietet darüberhinaus verschiedene Tools, um diesen Ordner dynamisch zu verwalten und zu aktualisieren, insbesondere einen Ressourcen Explorer.
Hinweis: Existiert der Ordner Resources nicht für die Datenbank, wird er angelegt, wenn Sie die Funktion Get 4D folder mit der Konstanten CurrentResources Folder ausführen.
Ordner Logs der Datenbank mit den Logbüchern der aktuellen Datenbank. Er liegt auf derselben Ebene wie die Strukturdatei und enthält folgende Logbücher:
Datenbankkonvertierung,
Web Server Anfragen,
Überprüfung und Reparatur der Daten,
Überprüfung und Reparatur der Struktur,
Journal zu Backup/Wiederherstellen Aktivitäten,
Debugging der Befehle und Funktionen,
4D Server Anfragen (auf Client-Rechnern und auf dem Server generiert).
Hinweis: Existiert der Ordner Logs nicht für die Datenbank, wird er angelegt, wenn Sie die Funktion Get 4D folder mit der Konstanten Logs Folder ausführen.
Aktueller HTML Root Ordner der Datenbank zurück. Der zurückgegebene Pfadname wird in der standardmäßigen Syntax der aktuellen Plattform dargestellt. Es ist der Ordner, in dem der 4D Web Server nach den angefragten Web Dateien und Seiten sucht. Der Ordner heißt standardmäßig WebFolder und liegt neben der Strukturdatei (oder eine lokale Kopie bei 4D im remote Modus). Sie können diesen Speicherort in den Einstellungen der Datenbank auf der Seite Web>Konfiguration oder dynamisch über den Befehl WEB SET ROOT FOLDER verändern. Wird die Funktion Get 4D folder über ein Remote 4D aufgerufen, wird der Pfad des Remote Rechners und nicht der von 4D Server zurückgegeben.
Der optionale Parameter * ist hilfreich beim Arbeiten mit Komponenten. Damit können Sie die Datenbank (Host oder Komponente) bestimmen, für welche Sie den Pfadnamen des Ordners erhalten möchten. Dieser Parameter gilt nur für Database Folder, Database Folder Unix Syntax und Current Resources folder. In allen anderen Fällen hat er keine Auswirkung.
Wird die Funktion von einer Komponente aus aufgerufen:
Ist der Parameter * übergeben, gibt die Funktion den Pfadnamen der Host Datenbank zurück.
Ist der Parameter * nicht übergeben, gibt die Funktion den Pfadnamen des Ordners Components zurück. Der zurückgegebene Datenbankordner (Database Folder und Database Folder Unix Syntax) ist unterschiedlich, je nach der Art der Komponentenarchitektur: - Bei einem Ordner .4dbase/package gibt die Funktion den Pfadnamen des Ordners .4dbase/package zurück, - Bei einer Datei .4db oder .4dc gibt die Funktion den Pfadnamen des Ordners Components zurück, - Bei einem Alias oder einer Verknüpfung gibt die Funktion den Pfadnamen des Ordners mit der Original Matrix Datenbank zurück. Das Ergebnis ist unterschiedlich, je nach dem Format dieser Datenbank (Ordner .4dbase /package oder Datei .4db/.4dc), wie oben beschrieben. Wird der Befehl von der Host Datenbank aus aufgerufen, gibt er immer den Pfadnamen des Host Datenbankordners zurück, unabhängig ob der Parameter * übergeben ist oder nicht.
Sie wollen während dem Starten einer Datenbank im Einzelplatzbetrieb in eine Datei aus dem 4D Ordner eigene Einstellungen laden oder erstellen. Ihr Code in der Datenbankmethode On Startup könnte folgendermaßen aussehen:
MAP FILE TYPES("PREF";"PRF";"Preferences file") ` Setze Dateityp PREF Mac OS auf .PRF Windows Dateierweiterung $vsPrefDocName:=Get 4D folder+"MyPrefs" ` Erstelle Pfadname zur Datei Voreinstellungen ` Prüfe, ob die Datei existiert If(Test path name($vsPrefDocName+(".PRF"*Num(On Windows)))#Is a document) $vtPrefDocRef:=Create document($vsPrefDocName;"PREF") ` Falls nein, erstelle sie Else $vtPrefDocRef:=Open document($vsPrefDocName;"PREF") ` Falls ja, öffne sie End if If(OK=1) ` Inhalt der Prozessdokumente CLOSE DOCUMENT($vtPrefDocRef) Else ` Verwalte Fehler End if
Hinweis: Auf Mac OS müssen Sie die Pfadnamen in Anführungszeichen setzen, wenn sie Datei- oder Ordnernamen mit Leerzeichen enthalten. Über das Sonderzeichen "\"oder die Anweisung Char(Double quote) können Sie Anführungszeichen in den String einfügen.