Folder
Les objets Folder
sont créés avec la commande Folder
. Ils contiennent des références à des dossiers qui peuvent exister réellement ou non sur le disque. Par exemple, lorsque vous exécutez la commande Folder
pour créer un nouveau dossier, un objet Folder
valide est créé mais rien n'est réellement stocké sur le disque jusqu'à ce que vous appeliez la fonction folder.create()
.
Exemple
L'exemple suivant crée un dossier "JohnSmith" :
Form.curfolder:=Folder(fk database folder)
Form.curfolder:=Folder("C:\\Users\\JohnSmith\\";fk platform path)
Chemins d'accès
Les objets Folder
prennent en charge plusieurs formes de chemin d'accès, y compris les syntaxes filesystems
ou posix
. Les noms de chemin pris en charge sont détaillés dans la page Pathnames .
Objet Folder
.copyTo( destinationFolder : 4D.Folder { ; newName : Text } { ; overwrite : Integer } ) : 4D.Folder copie l'objet Folder dans l'objet destinationFolder spécifié |
.create() : Boolean crée un dossier sur le disque selon les propriétés de l'objet Folder |
.createAlias( destinationFolder : 4D.Folder ; aliasName : Text { ; aliasType : Integer } ) : 4D.File crée un alias (macOS) ou un raccourci (Windows) |
.creationDate : Date la date de création du dossier |
.creationTime : Time l'heure de création du dossier |
.delete( { option : Integer } ) supprime le dossier |
.exists : Boolean vrai si le dossier existe sur le disque |
.extension : Text retourne l'extension du nom du dossier (le cas échéant) |
.file( path : Text ) : 4D.File un objet File à l'intérieur de l'objet Folder et renvoie sa référence |
.files( { options : Integer } ) : Collection une collection des objets File contenus dans le dossier |
.folder( path : Text ) : 4D.Folder crée un objet Folder à l'intérieur de l'objet parent Folder et retourne sa référence |
.folders( { options : Integer } ) : Collection retourne une collection d'objets Folder contenus dans le dossier parent |
.fullName : Text retourne le nom complet du dossier, y compris son extension (le cas échéant) |
.getIcon( { size : Integer } ) : Picture retourne l'icône du dossier |
.hidden : Boolean vrai si le dossier est défini comme "caché" au niveau du système |
.isAlias : Boolean toujours faux pour un objet Folder |
.isFile : Boolean toujours faux pour un objet Folder |
.isFolder : Boolean toujours vrai pour un objet Folder |
.isPackage : Boolean vrai si le dossier est un paquet sur macOS (et existe sur le disque) |
.modificationDate : Date la date de la dernière modification du dossier |
.modificationTime : Time l'heure de la dernière modification du dossier |
.name : Text le nom du dossier, sans extension (le cas échéant) |
.original : 4D.Folder le même objet Folder que le dossier |
.parent : 4D.Folder l'objet Folder parent du dossier |
.path : Text le chemin POSIX du dossier |
.platformPath : Text le chemin du dossier exprimé avec la syntaxe de la plate-forme actuelle |
.moveTo( destinationFolder : 4D.Folder { ; newName : Text } ) : 4D.Folder déplace ou renomme l'objet Folder (dossier source) dans l'objet destinationFolderspécifié |
.rename( newName : Text ) : 4D.Folder renomme le dossier avec le nom que vous avez passé dans newName et renvoie l'objet Folder renommé |
Folder
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
Folder ( path : Text { ; pathType : Integer }{ ; * } ) : 4D.Folder
Folder ( folderConstant : Integer { ; * } ) : 4D.Folder
Paramètres | Type | Description | |
---|---|---|---|
path | Text | -> | Chemin du dossier |
folderConstant | Integer | -> | Constante de dossier 4D |
pathType | Integer | -> | fk posix path (par défaut) ou fk platform path |
* | -> | * pour retourner le dossier de la base hôte | |
Résultat | 4D.Folder | <- | Nouvel objet dossier |
|
Description
La commande Folder
crée et renvoie un nouvel objet du type 4D.Folder
. La commande accepte deux syntaxes :
Folder ( path { ; pathType } { ; * } )
Dans le paramètre path, passez un chemin de dossier. Vous pouvez utiliser une chaine personnalisée ou un "filesystem" (ex : "/DATA").
Seuls les noms de chemin absolus sont pris en charge par la commande
Folder
.
Par défaut, 4D attend un chemin exprimé avec la syntaxe POSIX. Si vous travaillez avec des chemins de plate-forme (Windows ou macOS), vous devez les déclarer à l'aide du paramètre pathType. Les constantes suivantes sont disponibles :
Constante | Valeur | Commentaire |
---|---|---|
fk platform path | 1 | Chemin exprimé dans une syntaxe spécifique à la plate-forme (obligatoire en cas de chemin de plate-forme) |
fk posix path | 0 | Chemin exprimé avec la syntaxe POSIX (par défaut) |
Folder ( folderConstant { ; * } )
Dans le paramètre folderConstant, passez un dossier 4D interne ou un dossier système, à l'aide d'une des constantes suivantes :
Constante | Valeur | Commentaire |
---|---|---|
fk applications folder | 116 | |
fk data folder | 9 | Filesystem associé : "/DATA" |
fk database folder | 4 | Filesystem associé : "/PACKAGE" |
fk desktop folder | 115 | |
fk documents folder | 117 | Dossier Documents de l'utilisateur |
fk licenses folder | 1 | Dossier contenant les fichiers de licence 4D de la machine |
fk logs folder | 7 | Filesystem associé : "/LOGS" |
fk mobileApps folder | 10 | |
fk remote database folder | 3 | Dossier de la base de données 4D créé sur chaque machine 4D distante |
fk resources folder | 6 | Filesystem associé : "/RESOURCES" |
fk system folder | 100 | |
fk user preferences folder | 0 | Dossier 4D qui stocke les fichiers de préférence des utilisateurs dans le répertoire \<userName> . |
fk web root folder | 8 | Dossier racine web courant du projet : "/PACKAGE/chemin" si son emplacement se trouve dans le package, sinon chemin complet |
Si la commande est appelée à partir d'un composant, passez le paramètre optionnel * pour lire le chemin de la base hôte. Sinon, si vous omettez le paramètre *, un objet null est systématiquement retourné.
Sous Windows, dans les clients fusionnés, l'emplacement des dossiers intégrés est modifié si la clé BuildApp
ShareLocalResourcesOnWindowsClient
est utilisée.
4D.Folder.new()
Historique
Release | Modifications |
---|---|
18 R6 | Ajout |
4D.Folder.new ( path : Text { ; pathType : Integer } ) : 4D.Folder
4D.Folder.new ( folderConstant : Integer ) : 4D.Folder
Description
La fonction .4D.Folder.new()
crée et renvoie un nouvel objet du type 4D.Folder
. Elle est identique à la commande Folder
(raccourci).
Il est recommandé d'utiliser la commande raccourci
Folder
au lieu de4D.Folder.new()
.
.copyTo()
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.copyTo( destinationFolder : 4D.Folder { ; newName : Text } { ; overwrite : Integer } ) : 4D.Folder
Paramètres | Type | Description | |
---|---|---|---|
dossierDestination | 4D.Folder | -> | Dossier de destination |
nouveauNom | Text | -> | Nom de la copie |
overwrite | Integer | -> | fk overwrite pour écraser les éléments existants |
Résultat | 4D.Folder | <- | Dossier copié |
|
Description
La fonction .copyTo()
copie l'objet Folder
dans l'objet destinationFolder spécifié.
Le destinationFolder doit exister sur disque, sinon une erreur est générée.
Par défaut, le dossier est copié avec le nom du dossier original. Si vous souhaitez renommer la copie, passez le nouveau nom dans le paramètre newName. Le nouveau nom doit être conforme aux règles de nommage (ex : il ne doit pas contenir de caractères tels que ":", "/", etc.), sinon une erreur est retournée.
S'il existe déjà un dossier portant le même nom dans destinationFolder, par défaut 4D génère une erreur. Vous pouvez passer la constante fk overwrite
dans le paramètre overwrite pour ignorer et écraser le dossier existant :
Constante | Valeur | Commentaire |
---|---|---|
fk overwrite | 4 | Écrase les éléments existants, le cas échéant |
Valeur retournée
L'objet Folder
copié.
Exemple
Vous souhaitez copier un dossier Pictures, à partir du dossier Document de l'utilisateur vers le dossier de la base :
var $userImages; $copiedImages : 4D.Folder
$userImages:=Folder(fk documents folder).folder("Pictures")
$copiedImages:=$userImages.copyTo(Folder(fk database folder);fk overwrite)
.create()
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.create() : Boolean
Paramètres | Type | Description | |
---|---|---|---|
Résultat | Boolean | <- | Vrai si le dossier a été créé avec succès, sinon Faux |
|
Description
La fonction .create()
crée un dossier sur le disque selon les propriétés de l'objet Folder
.
Le cas échéant, la fonction crée la hiérarchie du dossier en se basant sur la description des propriétés platformPath ou path. Si le dossier existe déjà sur disque, la fonction ne fait rien (aucune erreur n'est générée) et retourne faux.
Valeur retournée
- Vrai si le dossier est créé avec succès ;
- Faux si un dossier du même nom existe déjà ou si une erreur s'est produite.
Exemple 1
Créer un dossier vide dans le dossier principal :
var $created : Boolean
$created:=Folder("/PACKAGE/SpecialPrefs").create()
Exemple 2
Création d'un dossier "/Archives2019/January/" dans le dossier principal :
$newFolder:=Folder("/PACKAGE/Archives2019/January")
If($newFolder.create())
ALERT("The "+$newFolder.name+" folder was created.")
Else
ALERT("Impossible to create a "+$newFolder.name+" folder.")
End if