Notation des objets pour gérer les fichiers et les dossiers

Traduit automatiquement de Deepl

4D propose déjà des commandes pour gérer les fichiers et les dossiers, mais qu’en est-il des nouvelles commandes qui tirent parti de la puissance de la notation objet ?

Les objets ont changé la façon dont de nombreux développeurs 4D écrivent du code, le rendant plus générique, plus flexible, plus facile et plus rapide. Cette vague de changement s’étend maintenant aux fichiers et aux dossiers. Dans cet article de blog, nous allons vous montrer à quel point il est facile de manipuler un objet afin de récupérer les attributs d’un fichier ou d’un dossier (plutôt que d’appeler plusieurs commandes et de stocker les informations dans plusieurs variables). Les choses deviennent beaucoup plus faciles !

Exemple de base de données

Manipulation des dossiers

Nouvelles commandes 4D

Une nouvelle commande Folder a été ajoutée et vous permet de créer un objet dossier à partir d’une constante, d’un chemin POSIX ou d’un chemin de plate-forme.

myFolder:=Folder(fk desktop folder)
myFolder :=Folder("/RESOURCES/Images")
myFolder :=Folder("c:\\Archives\\\" ;Platform path)

Nouvel objet Dossier

L’objet dossier fournit des propriétés et des méthodes qui vous permettent de créer et de manipuler des dossiers.

Voici quelques exemples de propriétés de dossier :

// Name
$name:=myFolder.name
// Modification date
$date :=myFolder.modificationDate

// Modification time
$time:=myFolder.modificationTime

Et il y a aussi des méthodes disponibles ! Vous pouvez create(), moveTo(), rename(), delete()etc.

// Move to
myMoveTo:=myFolder.moveTo(destinationFolder)
// Rename
myRename :=myFolder.rename("NewName")
// Delete
myFolder .delete(Delete with contents)
// List of files in myFolder
colFiles:=myFolder.files()

Les objets dossier contiennent des références à des dossiers qui peuvent ou non déjà exister sur le disque. Par exemple, lorsque vous exécutez la méthode Folder pour créer un nouveau dossier, un objet dossier valide est créé mais rien n’est réellement stocké sur le disque jusqu’à ce que vous appeliez la méthode create() jusqu’à ce que vous appeliez la méthode

newFolder=Folder(fk documents folder).folder("Archives/2019")
$result :=newFolder.exists // return False

newFolder :=newFolder.create()
$result :=newFolder.exists
// return True

Traitement des fichiers

Nouvelles commandes 4D

Nous avons également ajouté une commande File pour créer un objet fichier à partir d’une constante, d’un chemin POSIX ou d’un chemin de plate-forme.

myFile:=File(User settings file)
myFile :=File("/RESOURCES/Images/picture.png")
myFile :=File(Structure file;fk platform path)

Objet nouveau fichier

Comme pour les dossiers, le nouvel objet fichier permet d’accéder aux attributs des fichiers et de les manipuler.

// Name
$name:=myFile.name
// Extension
$extension :=myFile.extension
// Creation date

$date:=myFile.creationDate
// Creation time
$time:=myFile.creationTime

Tout comme les dossiers, les fichiers ont également des méthodes. Vous pouvez écrire et lire le contenu d’un fichier, le déplacer, le supprimer, etc.

// Create a file with
myFile.setText($text)
// Retrieve the content of the file
$text :=myFile.getText()
// Delete
myFile .delete()

Pour obtenir la liste complète des attributs et des méthodes, consultez le centre de documentation.

Vanessa Talbot
- Product Owner -Vanessa Talbot a rejoint l'équipe du programme 4D en juin 2014. En tant que Product Owner, elle est chargée de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation des fonctionnalités livrées répond aux besoins des clients.Depuis son arrivée, elle a travaillé à la définition des fonctionnalités clés de 4D. Elle a travaillé sur la plupart des nouvelles fonctionnalités de multithreading préemptif et aussi sur un sujet très complexe : la nouvelle architecture pour les applications enginées. Vanessa est diplômée de Telecom Saint-Etienne. Elle a commencé sa carrière à l'Institut de Recherche Criminelle en tant que développeur pour le département audiovisuel. Elle a également travaillé dans les domaines des médias et du médical en tant qu'experte en support technique, en production ainsi qu'en documentation de nouvelles fonctionnalités.