Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com

Accueil

 
4D v20 R7
Path to object

Path to object 


 

Path to object ( chemin {; typeChemin} ) -> Résultat 
Paramètre Type   Description
chemin  Texte in Chemin
typeChemin  Entier long in Type de syntaxe du chemin : Système (par défaut) ou Posix
Résultat  Objet in Objet décrivant le contenu du chemin

La commande Path to object retourne un objet contenant les propriétés spécifiques du chemin passé en paramètre.

Par défaut, si vous omettez le paramètre typeChemin, il sera présumé que vous passez un chemin système, contenant des séparateurs systèmes  ("\" sous Windows, ":" sous macOS). Si vous passez un chemin Posix contenant des séparateurs Posix ("/") ou si vous souhaitez expressément indiquer le type du chemin, passez une des constantes suivantes dans le paramètre typeChemin

Constante Type Valeur Comment
Path is POSIX Entier long 1 Le chemin est exprimé en syntaxe POSIX.
Path is system Entier long 0 (Défaut) Le chemin est exprimé avec la syntaxe système courante (Windows ou macOS)

La commande renvoie un objet résultant de l'analyse du chemin. Les propriétés suivantes sont disponibles :

PropriétéTypeDescription
parentFolderTexteDescription des répertoires constituant le chemin. Le dernier caractère est un séparateur de dossier.
nameTexteNom du fichier ou du dossier final du chemin spécifié, sans extension.
extensionTexteExtension du fichier final ou nom du dossier. Commence toujours par ".". Chaîne vide "" si pas d'extension.
isFolderBooléen"true" si "name" est un nom de dossier, sinon "false" ("false" par défaut)

4D considère que vous avez passé un chemin de dossier si le dernier caractère du chemin est un séparateur correspondant à son type (par exemple "\" sous Windows). Sinon, 4D considère que vous avez passé un nom de fichier.
L'extension est retournée, si elle n'est pas vide, que le chemin désigne un fichier ou un dossier. Dans les deux cas, vous devez concaténer le nom et l'extension pour obtenir le nom complet.

Notez que Path to object ne gère que les chaînes. Cette commande ne vérifie pas si le type de chemin est valide, ni l'existence réelle d'un fichier ou d'un dossier.

Les exemples suivants montrent différents résultats avec les chemins d'accès :

 C_OBJECT($o)
 $o:=Path to object("C:\\first\\second\\fileZ") //sous Windows
  //$o.parentFolder="C:\\first\\second\\"
  //$o.name="fileZ"
  //$o.extension=""
  //$o.isFolder=false

 C_OBJECT($o)
 $o:=Path to object("osx:Users:john:Documents:Comments.text") //sous MacOS
  //$o.parentFolder="osx:Users:john:Documents:"
  //$o.name="Comments"
  //$o.extension=".text"
  //$o.isFolder=false

 C_OBJECT($o)
 $o:=Path to object("\\images\\jan\\pict1.png";Path is system//sous Windows
  //$o.parentFolder="\\images\\jan\\"
  //$o.name="pict1"
  //$o.extension=".png"
  //$o.isFolder=false

Définir un chemin vers un dossier :

 C_OBJECT($o)
 $o:=Path to object("osx:Users:oscargoldman:Desktop:Databases:") // MacOS
  //$o.parentFolder="osx:Users:oscargoldman:Desktop:"
  //$o.name="Databases"
  //$o.extension=""
  //$o.isFolder=true

 C_OBJECT($o)
 $o:=Path to object("C:\\4D\\Main\\216410\\64\\4D\\4D.user\\")  // Windows
  //$o.parentFolder="C:\\4D\\Main\\216410\\64\\4D\\"
  //$o.name="4D"
  //$o.extension=".user"
  //$o.isFolder=true

 C_OBJECT($o)
 $o:=Path to object("/first/second.bundle/";Path is POSIX)
  //$o.parentFolder="/first/"
  //$o.name="second"
  //$o.extension=".bundle"
  //$o.isFolder=true

Si le chemin est un répertoire racine, parentFolder est vide :

 C_OBJECT($o)
 $o:=Path to object("C:\\")  // sous Windows
  //$o.parentFolder=""
  //$o.name="c:"
  //$o.extension=""
  //$o.isFolder=true


 C_OBJECT($o)
 $o:=Path to object("osx:") // sous MacOS
  //$o.parentFolder=""
  //$o.name="osx"
  //$o.extension=""
  //$o.isFolder=true


Si la dernière partie du chemin est ".something", c'est considéré comme un nom de fichier :

 C_OBJECT($o)
 $o:=Path to object("/folder/.invisible";Path is POSIX)
  //$o.parentFolder="/folder/"
  //$o.name=".invisible"
  //$o.extension=""
  //$o.isFolder=false

Vous pouvez combiner cette commande avec Object to path pour renommer un fichier dans un chemin :

 C_OBJECT($o)
 C_TEXT($path)
 $o:=Path to object("C:\\4D\\resources\\images\\4D.jpg")
  //$o.parentFolder="C:\\4D\\resources\\images\\"
  //$o.name="4D"
  //$o.extension=".jpg"
  //$o.isFolder=false
 
 $o.name:="4DOld"
 $path:=Object to path($o)
  //$path="C:\4D\resources\images\4DOld.jpg"

Vous voulez connaître le nombre de sous-dossiers contenus dans un chemin :

 C_OBJECT($o)
 C_TEXT($path)
 C_LONGINT($vCount)
 $path:=Select folder // on laisse l'utilisateur sélectionner un dossier
 $o:=Path to object($path)
 Repeat
    $o:=Path to object($o.parentFolder)
    $vCount:=$vCount+1
 Until($o.parentFolder="")
 ALERT("La profondeur du chemin est : "+String($count))



Voir aussi  

Convert path POSIX to system
Convert path system to POSIX
File
Folder
Object to path
Test path name

 
PROPRIÉTÉS 

Produit : 4D
Thème : Documents système
Numéro : 1547

Commande(s) éligible(s) à l'exécution dans un process préemptif

 
PAGE CONTENTS 
 
HISTORIQUE 

Créé : 4D v16 R6

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v20 R7)