La commande Get 4D folder renvoie le chemin d'accès du dossier 4D actif de l'application courante, ou du dossier de l'environnement 4D spécifié par le paramètre dossier, s'il est passé. Cette commande vous permet d'obtenir avec certitude le chemin d'accès réel des dossiers utilisés par l'application. En utilisant cette commande, vous êtes certain que votre code fonctionnera correctement sur toute plate-forme, quelles que soient la langue du système et l'application 4D.
Vous pouvez passer dans dossier une des constantes suivantes, placées dans le thème Environnement 4D :
Constante
Type
Valeur
4D Client database folder
Entier long
3
Active 4D Folder
Entier long
0
Current resources folder
Entier long
6
Data folder
Entier long
9
Database folder
Entier long
4
Database folder Unix syntax
Entier long
5
HTML Root folder
Entier long
8
Licenses folder
Entier long
1
Logs folder
Entier long
7
Voici une description de chacun de ces dossiers :
Notes préalables sur les noms de dossiers :
{Disque} est le disque sur lequel est installé le système.
Le libellé Utilisateur représente le nom de l'utilisateur ayant ouvert la session.
Avec certaines versions de Mac OS, les noms des dossiers sont traduits :
le dossier Library est nommé Bibliothèque,
le dossier Application Support est nommé Support aux applications.
Dossier de la base 4D créé en local sur chaque poste client, dans lequel sont téléchargés depuis 4D Server les dossiers et fichiers relatifs à la base (ressources, plug-ins, dossier Resources, etc.). Le dossier base 4D Client est situé à l'emplacement suivant sur chaque poste client :
Sous Windows 7 et suivants : {Disque}:\Users\<nomUtilisateur>\AppData\Local\4D\<NomDeLaBase_Adresse>
Sous OS X : {Disque}:Users:<nomUtilisateur>:Library:Caches:4D:<NomDeLaBase_Adresse>
Dossier contenant le fichier de structure de la base. Le chemin d’accès est exprimé avec la syntaxe standard de la plate-forme courante. Avec l'application 4D Client, cette constante équivaut strictement à la constante précédente 4D Client database folder : la commande retourne le chemin d’accès du dossier créé en local.
Dossier contenant le fichier de structure de la base. Cette constante désigne le même dossier que la précédente, mais le chemin d’accès retourné est exprimé avec la syntaxe Unix (Posix), du type /Users/... Cette syntaxe est principalement utile lorsque vous utilisez la commande LAUNCH EXTERNAL PROCESS sous OS X.
Dossier Resources de la base. Ce dossier contient les éléments additionnels (images, textes) utilisés pour l'interface de la base. Un composant peut disposer de son propre dossier Resources. Le dossier Resources est situé à côté du fichier de structure de la base. En mode client/serveur, ce dossier permet d'organiser le transfert de données personnalisées (images, fichiers, sous-dossiers...) entre le poste serveur et les postes clients. Le contenu de ce dossier est mis à jour automatiquement sur chaque client au moment de sa connexion. Tous les mécanismes de référencement associé au dossier Resources sont pris en charge en mode client/serveur (dossier .lproj, XLIFF, images...) . En outre, 4D fournit divers outils permettant de gérer et de mettre à jour dynamiquement ce dossier, notamment un Explorateur de ressources.
Note : Si le dossier Resources n'existe pas pour la base, l'exécution de la commande Get 4D folder avec la constante Current resources folder provoque sa création.
Dossier Logs de la base. Ce dossier centralise les fichiers d’historique de la base courante. Il est créé au même niveau que le fichier de structure. Le dossier Logs contient les fichiers d’historique suivants :
conversion de la base,
requêtes du serveur Web,
vérification et réparation des données,
vérification et réparation de la structure,
journal d'activités sauvegarde/restitution,
débogage des commandes,
requêtes 4D Server (généré sur les clients et sur le serveur)..
Note : Si le dossier Logs n'existe pas pour la base, l'exécution de la commande Get 4D folder avec la constante Logs folder provoque sa création.
Dossier racine HTML courant de la base. Le chemin d’accès retourné est exprimé avec la syntaxe standard de la plate-forme courante. Le dossier racine HTML est le dossier dans lequel le serveur Web de 4D va chercher les pages et fichiers Web demandés. Par défaut, il est nommé DossierWeb et est placé à côté de fichier de structure (ou de sa copie locale dans le cas de 4D en mode distant). Son emplacement peut être défini dans la page Web/Configuration des Propriétés de la base ou dynamiquement via la commande WEB SET ROOT FOLDER. Si la commande Get 4D folder est appelée depuis un 4D distant, le chemin retourné est celui du poste distant, pas celui de 4D Server.
Le paramètre facultatif * est utile dans le cadre d'une architecture utilisant des composants : il permet de déterminer la base (hôte ou composant) dont vous souhaitez obtenir le chemin d'accès d'un dossier. Ce paramètre est valide uniquement pour les dossiers Database folder, Database folder Unix syntax et Current resources folder. Il est ignoré dans les autres cas. Lorsque la commande est appelée depuis un composant :
si le paramètre * est passé, la commande retourne le chemin d’accès du dossier de la base hôte,
si le paramètre * n’est pas passé, la commande retourne le chemin d’accès du dossier du composant. Le dossier de la base (Database folder et Database folder Unix syntax) retourné diffère en fonction du type d’architecture du composant :
dans le cas d’un dossier/package .4dbase, la commande retourne le chemin d’accès du dossier/package .4dbase,
dans le cas d’un fichier .4db ou .4dc, la commande retourne le chemin d’accès du dossier “Components”,
dans le cas d’un alias ou raccourci, la commande retourne le chemin d’accès du dossier contenant la base matrice originale. Le résultat diffère en fonction du format de cette base (dossier/package .4dbase ou fichier .4db/.4dc), comme décrit ci-dessus.
Lorsque la commande est appelée depuis la base hôte, elle retourne toujours le chemin d’accès du dossier de la base hôte, que le paramètre * soit passé ou non.
Pendant le démarrage d'une base mono-utilisateur, vous voulez charger (ou créer) vos propres paramètres et les stocker dans un fichier situé dans le dossier 4D. Pour cela, dans la On Startup database method, vous pouvez écrire les lignes suivantes :
MAP FILE TYPES("PREF";"PRF";"Préférences") ` Associer le type de fichier PREF sur Mac OS à l'extension de fichier .PRF sur Windows $vsNomDocPref:=Get 4D folder+"MesPrefs" ` Construire le chemin d'accès au fichier Préférences If(Test path name($vsNomDocPref+(".PRF"*Num(Sous Windows)))#Is a document) ` Vérifier si le fichier existe $vtRefDocPref:=Create document($vsNomDocPref;"PREF") ` Si non, il faut le créer Else $vtRefDocPref:=Open document($vsNomDocPref;"PREF") ` Si oui, il faut l'ouvrir End if If(OK=1) ` Traiter le contenu du document CLOSE DOCUMENT($vtRefDocPref) Else ` Gérer l'erreur End if
Note : Sous Mac OS, il est nécessaire d’encadrer les chemins d’accès avec des guillemets lorsqu’ils contiennent des noms de fichiers ou de dossiers comportant des espaces. La séquence d’échappement "\" permet d’insérer le caractère guillemets dans la chaîne. Vous pouvez également utiliser l’instruction Char(Double quote).