| 4D v20.1Chemin vers objet | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 | 
    4D v20.1
 Chemin vers objet 
         | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Chemin vers objet ( 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 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é | 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 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=falseDé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=trueSi 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 C_OBJET($o)
 $o:=Chemin vers objet("/folder/.invisible";Chemin est POSIX)
  //$o.parentFolder="/folder/"
  //$o.name=".invisible"
  //$o.extension=""
  //$o.isFolder=falseVous 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))
									Convertir chemin POSIX vers systeme
									
									Convertir chemin systeme vers POSIX
									
									Dossier
									
									Fichier
									
									Objet vers chemin
									
									Tester chemin acces
									
	Produit :  4D
	Thème :  Documents système
	Numéro :  
        1547
        
        
        
	Nom intl. :  Path to object
	Créé :  4D v16 R6
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	4D - Langage ( 4D v20)
	
	
	4D - Langage ( 4D v20.1)
	
	
	
 Ajouter un commentaire
Ajouter un commentaire