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 v19.8
Chemin vers objet

Chemin vers objet 


 

Chemin vers objet ( 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 Chemin vers objet 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
Chemin est POSIX Entier long 1 Le chemin est exprimé en syntaxe POSIX.
Chemin système 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 Chemin vers objet 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_OBJET($o)
 $o:=Chemin vers objet("C:\\first\\second\\fileZ") //sous Windows
  //$o.parentFolder="C:\\first\\second\\"
  //$o.name="fileZ"
  //$o.extension=""
  //$o.isFolder=false

 C_OBJET($o)
 $o:=Chemin vers objet("osx:Users:john:Documents:Comments.text") //sous MacOS
  //$o.parentFolder="osx:Users:john:Documents:"
  //$o.name="Comments"
  //$o.extension=".text"
  //$o.isFolder=false

 C_OBJET($o)
 $o:=Chemin vers objet("\\images\\jan\\pict1.png";Chemin système//sous Windows
  //$o.parentFolder="\\images\\jan\\"
  //$o.name="pict1"
  //$o.extension=".png"
  //$o.isFolder=false

Définir un chemin vers un dossier :

 C_OBJET($o)
 $o:=Chemin vers objet("osx:Users:oscargoldman:Desktop:Databases:") // MacOS
  //$o.parentFolder="osx:Users:oscargoldman:Desktop:"
  //$o.name="Databases"
  //$o.extension=""
  //$o.isFolder=true

 C_OBJET($o)
 $o:=Chemin vers objet("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_OBJET($o)
 $o:=Chemin vers objet("/first/second.bundle/";Chemin est 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_OBJET($o)
 $o:=Chemin vers objet("C:\\")  // sous Windows
  //$o.parentFolder=""
  //$o.name="c:"
  //$o.extension=""
  //$o.isFolder=true


 C_OBJET($o)
 $o:=Chemin vers objet("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_OBJET($o)
 $o:=Chemin vers objet("/folder/.invisible";Chemin est POSIX)
  //$o.parentFolder="/folder/"
  //$o.name=".invisible"
  //$o.extension=""
  //$o.isFolder=false

Vous pouvez combiner cette commande avec Objet vers chemin pour renommer un fichier dans un chemin :

 C_OBJET($o)
 C_TEXTE($path)
 $o:=Chemin vers objet("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:=Objet vers chemin($o)
  //$path="C:\4D\resources\images\4DOld.jpg"

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

 C_OBJET($o)
 C_TEXTE($path)
 C_ENTIER LONG($vCount)
 $path:=Selectionner dossier // on laisse l'utilisateur sélectionner un dossier
 $o:=Chemin vers objet($path)
 Repeter
    $o:=Chemin vers objet($o.parentFolder)
    $vCount:=$vCount+1
 Jusque($o.parentFolder="")
 ALERTE("La profondeur du chemin est : "+Chaine($count))



Voir aussi  

Convertir chemin POSIX vers systeme
Convertir chemin systeme vers POSIX
Dossier
Fichier
Objet vers chemin
Tester chemin acces

 
PROPRIÉTÉS 

Produit : 4D
Thème : Documents système
Numéro : 1547
Nom intl. : Path to object

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 v19)
4D - Langage ( 4D v19.1)
4D - Langage ( 4D v19.4)
4D - Langage ( 4D v19.5)
4D - Langage ( 4D v19.6)
4D - Langage ( 4D v19.7)
4D - Langage ( 4D v19.8)