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 chemins d'accès pris en charge sont détaillés dans la page Chemins d'accès.
Objet Folder
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 retourne un nouvel objet de type 4D.Folder. Elle est identique à la commande Folder (raccourci).
Il est recommandé d'utiliser la commande
Folderau lieu de4D.Folder.new().
.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 disque en fonction des 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
.createAlias()
Historique
| Release | Modifications | 
|---|---|
| 17 R5 | Ajout | 
.createAlias*( destinationFolder : 4D.Folder ; aliasName : Text { ; aliasType : Integer } ) : 4D.File
| Paramètres | Type | Description | |
|---|---|---|---|
| dossierDestination | 4D.Folder | -> | Dossier de destination pour l'alias ou le raccourci | 
| aliasName | Text | -> | Nom de l'alias ou du raccourci | 
| aliasType | Integer | -> | Type de lien de l'alias | 
| Résultat | 4D.File | <- | Référence de l'alias ou du raccourci du dossier | 
Description
La fonction .createAlias() crée un alias (macOS) ou un raccourci (Windows) du dossier avec le nom aliasName dans le dossier désigné par l'objet destinationFolder.
Passez le nom de l'alias ou du raccourci à créer dans le paramètre aliasName.
Par défaut sur macOS, la fonction crée un alias standard. Vous pouvez également créer un lien symbolique à l'aide du paramètre aliasType. Les constantes suivantes sont disponibles :
| Constante | Valeur | Commentaire | 
|---|---|---|
| fk alias link | 0 | Lien alias (macOS uniquement)(par défaut) | 
| fk symbolic link | 1 | Lien symbolique (macOS uniquement) | 
Sur Windows, un raccourci (fichier .lnk) est toujours créé (le paramètre aliasType est ignoré).
Objet retourné
Un objet 4D.File avec la propriété isAlias mise à true.
Exemple
Vous souhaitez créer un alias pour un dossier d'archives dans votre dossier principal :
$myFolder:=Folder("C:\\Documents\\Archives\\2019\\January";fk platform path)
$aliasFile:=$myFolder.createAlias(Folder("/PACKAGE");"Jan2019")
.delete()
Historique
| Release | Modifications | 
|---|---|
| 17 R5 | Ajout | 
.delete*( { option : Integer } )
| Paramètres | Type | Description | |
|---|---|---|---|
| option | Integer | -> | Option de suppression du dossier | 
Description
La fonction .delete() supprime le dossier.
Par défaut, pour des raisons de sécurité, si vous omettez le paramètre option, .delete() permet uniquement de supprimer les dossiers vides. Si vous souhaitez que la commande supprime des dossiers qui ne sont pas vides, vous devez utiliser le paramètre option avec l'une des constantes suivantes :
| Constante | Valeur | Commentaire | 
|---|---|---|
| Delete only if empty | 0 | Supprime le dossier uniquement s'il est vide | 
| Delete with contents | 1 | Supprime le dossier ainsi que son éventuel contenu | 
Lorsque la constante Delete only if empty est passée ou si vous omettez le paramètre option :
- Le dossier n'est supprimé que s'il est vide ; sinon, la commande ne fait rien et une erreur -47 est générée.
- Si le dossier n'existe pas, l'erreur -120 est générée.
Lorsque la constante Delete with contents est passée :
- Le dossier, ainsi que tout son contenu, est supprimé. Attention : Même si ce dossier et/ou son contenu sont verrouillés ou définis comme étant en lecture seule, si l'utilisateur dispose des droits d'accès appropriés, le dossier (et son contenu) est supprimé malgré tout.
- Si ce dossier, ou l'un des fichiers qu'il contient, ne peut être supprimé, la suppression est interrompue dès que le premier élément inaccessible est détecté, et une erreur(*) est retournée. Dans ce cas, le dossier ne peut être que partiellement supprimé. Lorsque la suppression est interrompue, vous pouvez utiliser la commande Last errorspour récupérer le nom et le chemin du fichier incriminé.
- Si le dossier n'existe pas, la commande ne fait rien et aucune erreur n'est retournée. (*) Windows: -54 (Attempt to open locked file for writing) macOS: -45 (The file is locked or the pathname is not correct)
.moveTo()
Historique
| Release | Modifications | 
|---|---|
| 17 R5 | Ajout | 
.moveTo*( destinationFolder : 4D.Folder { ; newName : Text } ) : 4D.Folder
| Paramètres | Type | Description | |
|---|---|---|---|
| dossierDestination | 4D.Folder | -> | Dossier de destination | 
| nouveauNom | Text | -> | Nom complet du dossier déplacé | 
| Résultat | 4D.Folder | <- | Dossier déplacé | 
Description
La fonction .moveTo( ) déplace ou déplace et renomme l'objet Folder (dossier source) dans le dossier destinationFolder spécifié.
Le destinationFolder doit exister sur disque, sinon une erreur est générée.
Par défaut, le dossier garde le même nom lorsqu'il est déplacé. Par défaut, le dossier garde le même nom lorsqu'il est déplacé. 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.
Objet retourné
L'objet Folder déplacé.
Exemple
Vous souhaitez déplacer et renommer un dossier :
 var $tomove; $moved : Object
 $docs:=Folder(fk documents folder)
 $tomove:=$docs.folder("Pictures")
 $tomove2:=$tomove.moveTo($docs.folder("Archives");"Pic_Archives")
.rename()
Historique
| Release | Modifications | 
|---|---|
| 17 R5 | Ajout | 
.rename*( newName : Text ) : 4D.Folder
| Paramètres | Type | Description | |
|---|---|---|---|
| nouveauNom | Text | -> | Nouveau nom complet du dossier | 
| Résultat | 4D.Folder | <- | Dossier renommé | 
Description
La fonction .rename() renomme le dossier avec le nom que vous avez passé dans newName et retourne l'objet Folder renommé.
Le paramètre newName doit être conforme aux règles de nommage (ex : il ne doit pas contenir des caractères tels que ":", "/", etc.), sinon une erreur est retournée. S'il existe déjà un fichier portant le même nom, une erreur est retournée.
Objet retourné
L'objet Folder renommé.
Exemple
 var $toRename : 4D.Folder
 $toRename:=Folder("/RESOURCES/Pictures").rename("Images")