| 4D v18Path to object | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 | 
    4D v18
 Path to object 
         | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Path to object ( chemin {; typeChemin} ) -> Résultat | ||||||||
| Paramètre | Type | Description | ||||||
| chemin | Texte |   | Chemin | |||||
| typeChemin | Entier long |   | Type de syntaxe du chemin : Système (par défaut) ou Posix | |||||
| Résultat | Objet |   | 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é | Type | Description | 
| parentFolder | Texte | Description des répertoires constituant le chemin. Le dernier caractère est un séparateur de dossier. | 
| name | Texte | Nom du fichier ou du dossier final du chemin spécifié, sans extension. | 
| extension | Texte | Extension du fichier final ou nom du dossier. Commence toujours par ".". Chaîne vide "" si pas d'extension. | 
| isFolder | Boolé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=falseDé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=trueSi 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 C_OBJECT($o)
 $o:=Path to object("/folder/.invisible";Path is POSIX)
  //$o.parentFolder="/folder/"
  //$o.name=".invisible"
  //$o.extension=""
  //$o.isFolder=falseVous 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))
									Convert path POSIX to system
									
									Convert path system to POSIX
									
									File
									
									Folder
									
									Object to path
									
									Test path name
									
	Produit :  4D
	Thème :  Documents système
	Numéro :  
        1547
        
        
        
	
	Créé :  4D v16 R6
	
	
	
	
	
	
	
	
	
	4D - Langage ( 4D v18)
	
	
	
	
	
 Ajouter un commentaire
Ajouter un commentaire