Utilisation d’éléments de chemin dans les objets

Traduit automatiquement de Deepl

4D facilite la vie de vos développeurs avec deux nouvelles commandes permettant de gérer sans effort les chemins d’accès aux fichiers ou aux dossiers. Gagnez un temps précieux avec la commande Path to object qui, en une seule ligne de code, extrait l’extension, le nom du fichier ou le dossier parent. Ensuite, vous pouvez modifier et recombiner les différents attributs de l’objet pour composer un nouveau chemin avec la commande Object to path.

Extraire les éléments du chemin

Avec Path to objectvous pouvez facilement diviser les chemins en plusieurs parties, restituées sous forme d’attributs d’objet :

  • Dossier parent
  • Nom
  • Extension
  • Est un dossier ou non

// Séparer un chemin écrit avec le délimiteur du système
$pathSys:=Cheminvers l'objet("C:\4D\\resources\\images\\4D.jpg")
//$pathSys.parentFolder="C:\4D\\resources\images\\\"
//$pathSys.name="4D"
//$pathSys.extension=".jpg"
//$pathSys.isFolder=False

Notez que la commande prend en charge les chemins système et POSIX. Elle peut également déterminer si vous avez transmis un dossier ou un fichier en se basant sur le dernier caractère du paramètre d’entrée path.

Construire le chemin

Vous disposez maintenant d’un moyen simple pour modifier les éléments d’un chemin et le reconstruire avec la commande Object to path pour le reconstruire. Facile !

// Dupliquez un document dans son propre dossier :
$path:="c:\\tmp\\file.txt"
$o:=Cheminvers objet($path)
// Renommez le document
$o.name:=$o.name+"_copy"
// Faites une copie du document
COPY DOCUMENT($path;objet vers chemin($o))

Vous pouvez également utiliser l’objet renvoyé dans toute commande 4D demandant un chemin :

$o:=Pathto object("C:\4D\\\resources\\images\\4D.jpg")
$doc:=Selectdocument($o.name+$o.extension;$o.extension; "Save as" ;File name entry)

Les commandes Path to object et Object to path doivent maintenant être utilisées pour remplacer les appels aux commandes obsolètes, _o_Document type et _o_SET DOCUMENT TYPE.

Amélioration des performances

Il est toujours bon de mentionner que 4D v16 R6 tire pleinement parti des API modernes du système macOS pour la manipulation des fichiers et des dossiers. Nous avons effectué des tests de référence en effectuant diverses opérations telles que l’énumération du contenu des dossiers, la vérification des propriétés des fichiers, la lecture ou la copie de petits fichiers, sur des dossiers contenant des milliers de fichiers.

Les résultats montrent que le temps d’exécution est 6 fois plus rapide en général et jusqu’à 30 fois plus rapide pour lister les fichiers présents à un emplacement donné.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené a rejoint l'équipe du programme 4D en novembre 2016. En tant que Product Owner, il est en charge 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 de la fonctionnalité livrée répond au besoin du client.Après avoir obtenu une licence en informatique au CNAM, Fabrice a rejoint une petite société d'édition de logiciels en tant que développeur Windev. Il a ensuite travaillé pour différentes entreprises dans les domaines de l'industrie et du commerce en tant que développeur Windev et web ainsi que conseiller technique sur les nouvelles fonctionnalités.