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
.copyTo( destinationFolder : 4D.Folder { ; newName : Text } { ; overwrite : Integer } ) : 4D.Folder copie l'objet Folder dans le destinationFolder spécifié |
.create() : Boolean crée un dossier sur disque en fonction des 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 true si le dossier existe sur le disque |
.extension : Text renvoie l'extension du nom du dossier (s'il y en a une) |
.file( path : Text ) : 4D.File un objet File à l'intérieur de l'objet Folder et retourne sa référence |
.files( { options : Integer } ) : Collection retourne une collection d'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, extension comprise (le cas échéant) |
.getIcon( { size : Integer } ) : Picture retourne l'icône du dossier |
.hidden : Boolean true si le dossier est défini comme "hidden" au niveau du système |
.isAlias : Boolean toujours false pour un objet Dossier |
.isFile : Boolean toujours false pour un dossier |
.isFolder : Boolean toujours true pour un dossier |
.isPackage : Boolean true si le dossier est un paquet sous 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 l'extension (s'il y en a une) |
.original : 4D.Folder le même objet Dossier que le dossier |
.parent : 4D.Folder l'objet dossier parent du dossier |
.path : Text le chemin POSIX du dossier |
.platformPath : Text le chemin du dossier exprimé dans la syntaxe de la plate-forme courante |
.moveTo( destinationFolder : 4D.Folder { ; newName : Text } ) : 4D.Folder déplace ou déplace et renomme l'objet Folder (dossier source) dans le dossier destinationFolder spécifié |
.rename( newName : Text ) : 4D.Folder renomme le dossier avec le nom que vous avez passé dans newName et retourne l'objet Folder renommé |
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
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 le 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 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")
.creationDate
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.creationDate : Date
Description
La propriété .creationDate
retourne la date de création du dossier.
Cette propriété est en lecture seule.
.creationTime
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.creationTime : Time
Description
La propriété .creationTime
renvoie l'heure de création du dossier (exprimée en nombre de secondes commençant à 00:00).
Cette propriété est en lecture seule.
.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 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)
.exists
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.exists : Boolean
Description
La propriété .exists
renvoie true si le dossier existe sur le disque, et false sinon.
Cette propriété est en lecture seule.
.extension
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.extension : Text
Description
La propriété .extension
renvoie l'extension du nom du dossier (s'il y en a une). Une extension commence toujours par ".". La propriété retourne une chaîne vide si le nom du dossier n'a pas d'extension.
Cette propriété est en lecture seule.
.file()
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.file( path : Text ) : 4D.File
Paramètres | Type | Description | |
---|---|---|---|
path | Text | -> | Chemin POSIX relatif |
Résultat | 4D.File | <- | Objet File (null si chemin invalide) |
Description
La fonction .file()
crée un objet File
à l'intérieur de l'objet Folder
et retourne sa référence.
Dans le paramètre path, passez un chemin relatif POSIX pour désigner le fichier à retourner. Le chemin sera évalué à partir du dossier parent en tant que racine.
Valeur retournée
Un objet File
ou null si path n'est pas valide.
Exemple
var $myPDF : 4D.File
$myPDF:=Folder(fk documents folder).file("Pictures/info.pdf")
.files()
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.files( { options : Integer } ) : Collection
Paramètres | Type | Description | |
---|---|---|---|
options | Integer | -> | Options de liste de fichiers |
Résultat | Collection | <- | Collection d'objets dossier enfant |
Description
La fonction .files()
retourne une collection d'objets File
contenus dans le dossier.
Les alias ou les liens symboliques ne sont pas résolus.
Par défaut, si vous omettez le paramètre options, seuls les fichiers à la racine du dossier sont retournés dans la collection, ainsi que les fichiers et dossiers invisibles. Vous pouvez modifier cela en passant, dans le paramètre options parameter, une ou plusieurs des constantes suivantes :
Constante | Valeur | Commentaire |
---|---|---|
fk recursive | 1 | La collection contient les fichiers du dossier spécifié ainsi que de ses sous-dossiers |
fk ignore invisible | 8 | Les fichiers invisibles ne sont pas répertoriés |
Valeur retournée
Collection d'objets File
.
Exemple 1
Vous souhaitez savoir s'il y a des fichiers invisibles dans le dossier de la base :
var $all; $noInvisible : Collection
$all:=Folder(fk database folder).files()
$noInvisible:=Folder(fk database folder).files(fk ignore invisible)
If($all.length#$noInvisible.length)
ALERT("Database folder contains hidden files.")
End if
Exemple 2
Vous souhaitez lire tous les fichiers qui ne sont pas invisibles dans le dossier Documents :
var $recursive : Collection
$recursive:=Folder(fk documents folder).files(fk recursive+fk ignore invisible)
.folder()
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.folder( path : Text ) : 4D.Folder
Paramètres | Type | Description | |
---|---|---|---|
path | Text | -> | Chemin POSIX relatif |
Résultat | 4D.Folder | <- | Objet dossier (null si path invalide) |
Description
La fonction .folder()
crée un objet Folder
à l'intérieur de l'objet parent Folder
et retourne sa référence.
Dans le paramètre path, passez un chemin relatif POSIX pour désigner le dossier à retourner. Le chemin sera évalué à partir du dossier parent en tant que racine.
Valeur retournée
Un objet Folder
object ou null si path est invalide.
Exemple
var $mypicts : 4D.Folder
$mypicts:=Folder(fk documents folder).folder("Pictures")
.folders()
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.folders( { options : Integer } ) : Collection
Paramètres | Type | Description | |
---|---|---|---|
options | Integer | -> | Options de liste des dossiers |
Résultat | Collection | <- | Collection d'objets dossier enfant |
Description
La fonction .folders()
retourne une collection d'objets Folder
contenus dans le dossier parent.
Par défaut, si vous omettez le paramète options, seuls les dossiers à la racine du dossier sont retournés dans la collection. Vous pouvez modifier cela en passant, dans le paramètre options parameter, une ou plusieurs des constantes suivantes :
Constante | Valeur | Commentaire |
---|---|---|
fk recursive | 1 | La collection contient les dossiers du dossier spécifié ainsi que de ses sous-dossiers |
fk ignore invisible | 8 | Les dossiers invisibles ne sont pas répertoriés |
Valeur retournée
Collection d'objets Folder
.
Exemple
Vous souhaitez obtenir la collection de tous les dossiers et sous-dossiers du dossier de la base :
var $allFolders : Collection
$allFolders:=Folder("/PACKAGE").folders(fk recursive)
.fullName
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.fullName : Text
Description
La propriété .fullName
retourne le nom complet du dossier, extension comprise (le cas échéant).
Cette propriété est en lecture seule.
.getIcon()
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.getIcon( { size : Integer } ) : Picture
Paramètres | Type | Description | |
---|---|---|---|
size | Integer | -> | Longueur du côté de l'image retournée (pixels) |
Résultat | Picture | <- | Icône |
Description
La fonction .getIcon()
retourne l'icône du dossier.
Le paramètre optionnel size spécifie les dimensions en pixels de l'icône retournée. Cette valeur représente la longueur latérale du côté du carré contenant l'icône. La taille des icônes est généralement de 32x32 pixels (“grandes icônes”) ou de 16x16 pixels (“petites icônes”). Si vous passez 0 ou si vous omettez ce paramètre, la version "grandes icônes" est retournée.
Si le dossier n'existe pas sur disque, une icône vide est retournée par défaut.
Valeur retournée
Image de l'icône du dossier.
.hidden
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.hidden : Boolean
Description
La propriété .hidden
renvoie true si le dossier est défini comme "hidden" au niveau du système, et false dans le cas contraire.
Cette propriété est en lecture seule.
.isAlias
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.isAlias : Boolean
Description
La propriété .isAlias
retournetoujours false pour un objet Dossier
.
Cette propriété est en lecture seule.
.isFile
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.isFile : Boolean
Description
La propriété .isFile
retourne toujours false pour un dossier.
Cette propriété est en lecture seule.
.isFolder
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.isFolder : Boolean
Description
La propriété .isFolder
renvoie toujours true pour un dossier.
Cette propriété est en lecture seule.
.isPackage
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.isPackage : Boolean
Description
La propriété .isPackage
renvoie true si le dossier est un paquet sous macOS (et existe sur le disque). Sinon, elle retourne false.
Sous Windows, .isPackage
retourne toujours false.
Cette propriété est en lecture seule.
.modificationDate
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.modificationDate : Date
Description
La propriété .modificationDate
renvoie la date de la dernière modification du dossier.
Cette propriété est en lecture seule.
.modificationTime
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.modificationTime : Time
Description
La propriété .modificationTime
retourne l'heure de la dernière modification du dossier (exprimée en nombre de secondes depuis 00:00).
Cette propriété est en lecture seule.
.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é. Si vous souhaitez renommer le dossier déplacé, passez le nouveau nom complet 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.
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")
.name
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.name : Text
Description
La propriété .name
renvoie le nom du dossier, sans l'extension (s'il y en a une).
Cette propriété est en lecture seule.
.original
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.original : 4D.Folder
Description
La propriété .original
retourne le même objet Dossier que le dossier.
Cette propriété est en lecture seule.
Cette propriété est disponible sur les dossiers pour permettre au code générique de traiter les dossiers ou les fichiers.
.parent
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.parent : 4D.Folder
Description
La propriété .parent
retourne l'objet dossier parent du dossier. Si le chemin représente un filesystem (ex : "/DATA/"), le filesystem est retourné.
Si le dossier n'a pas de parent (racine), la valeur nulle est retournée.
Cette propriété est en lecture seule.
.path
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.path : Text
Description
La propriété .path
retourne le chemin POSIX du dossier. Si le chemin représente un filesystem (ex : "/DATA/"), le filesystem est retourné.
Cette propriété est en lecture seule.
.platformPath
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.platformPath : Text
Description
La propriété .platformPath
retourne le chemin du dossier exprimé dans la syntaxe de la plate-forme courante.
Cette propriété est en lecture seule.
.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")