Aller au contenu principal
Version : 20 R10

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
ReleaseModifications
18 R6Ajout

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 Folder au lieu de 4D.Folder.new().

.create()

Historique
ReleaseModifications
17 R5Ajout

.create()* : Boolean

ParamètresTypeDescription
RésultatBoolean<-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
ReleaseModifications
17 R5Ajout

.createAlias*( destinationFolder : 4D.Folder ; aliasName : Text { ; aliasType : Integer } ) : 4D.File

ParamètresTypeDescription
dossierDestination4D.Folder->Dossier de destination pour l'alias ou le raccourci
aliasNameText->Nom de l'alias ou du raccourci
aliasTypeInteger->Type de lien de l'alias
Résultat4D.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 :

ConstanteValeurCommentaire
fk alias link0Lien alias (macOS uniquement)(par défaut)
fk symbolic link1Lien 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
ReleaseModifications
17 R5Ajout

.delete*( { option : Integer } )

ParamètresTypeDescription
optionInteger->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 :

ConstanteValeurCommentaire
Delete only if empty0Supprime le dossier uniquement s'il est vide
Delete with contents1Supprime 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 errors pour 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
ReleaseModifications
17 R5Ajout

.moveTo*( destinationFolder : 4D.Folder { ; newName : Text } ) : 4D.Folder

ParamètresTypeDescription
dossierDestination4D.Folder->Dossier de destination
nouveauNomText->Nom complet du dossier déplacé
Résultat4D.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
ReleaseModifications
17 R5Ajout

.rename*( newName : Text ) : 4D.Folder

ParamètresTypeDescription
nouveauNomText->Nouveau nom complet du dossier
Résultat4D.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")