Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com

Home

 
4D v20 R7
Path to object

Path to object 


 

Path to object ( Pfad {; Pfadtyp} ) -> Funktionsergebnis 
Parameter Typ   Beschreibung
Pfad  Text in Pfadname
Pfadtyp  Lange Ganzzahl in Typ der Pfadsyntax (Standard) oder Posix
Funktionsergebnis  Objekt in Objekt mit Pfadinhalt

Die Funktion Path to object gibt ein Objekt mit den spezifischen Eigenschaften des Parameters Pfad zurück.

Ohne Angabe des Parameters PfadTyp nimmt 4D standardmäßig an, dass Sie einen System Pfad mit den entsprechenden Separatoren übergeben haben ("\" unter Windows, ":" auf macOS). Übergeben Sie einen Posix Pfad mit Posix Separatoren ("/") oder wollen Sie den Pfadtyp angeben, übergeben Sie eine der beiden Konstanten im Parameter PfadTyp:

Konstante Typ Wert Kommentar
Path is POSIX Lange Ganzzahl 1 Der Pfad wird in Posix Syntax angegeben.
Path is system Lange Ganzzahl 0 (Standard) Der Pfad wird in der Syntax des aktuellen Systems angegeben (Windows oder macOS).

Die Funktion gibt ein Objekt zurück, das sich nach der Analyse von Pfad ergibt. Es enthält folgende Eigenschaften:

EigenschaftTypBeschreibung
parentFolderTextVerzeichnisinformation für den Pfad. Das letzte Zeichen ist immer ein Ordnertrenner.
nameTextDatei- oder Ordnername des angegebenen Pfads, ohne Endung.
extensionTextEndung des Datei- oder Ordnernamens. Startet immer mit "." und ist Leerstring "", wenn es keine Endung gibt.
isFolderBooleanWahr, wenn Name ein Ordnername ist, sonst falsch (standardmäßig falsch)

Ist das letzte Zeichen von Pfad ein Trenner gemäß dem Pfadtyp (zum Beispiel "\" unter Windows), nimmt 4D an, dass ein Ordnerpfad übergeben wurde. Sonst nimmt 4D an, dass es ein Dateiname ist.
Die Endung (wenn übergeben) wird zurückgegeben, unabhängig ob der Pfad eine Datei oder einen Ordner angibt. In jedem Fall müssen Sie Name und Endung zusammenfügen, um den kompletten Namen zu erhalten.

Beachten Sie, dass Path to object nur Strings verwaltet und weder prüft, ob der Pfadtyp gültig ist oder eine Datei bzw. Ordner tatsächlich vorhanden sind.

Nachfolgende Beispiele zeigen verschiedene Ergebnisse mit Dateipfaden:

 C_OBJECT($o)
 $o:=Path to object("C:\\first\\second\\fileZ") //unter 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)  //auf 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//unter Windows
  //$o.parentFolder="\\images\\jan\\"
  //$o.name="pict1"
  //$o.extension=".png"
  //$o.isFolder=false

Pfad zu einem Ordner definieren:

 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

Ist der Pfad nicht in einem Root-Verzeichnis, ist parentFolder leer:

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

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

Ist der letzte Teil des Pfads ein Text (hier .invisible), wird er als Dateiname gewertet:

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

Sie können diese Funktion mit Object to path kombinieren, um eine Datei in einem Pfad umzubenennen:

 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"

Sie wollen die Anzahl Unterordner innerhalb eines Pfads wissen:

 C_OBJECT($o)
 C_TEXT($path)
 C_LONGINT($vCount)
 $path:=Select folder //den Benutzer einen Ordner auswählen lassen
 $o:=Path to object($path)
 Repeat
    $o:=Path to object($o.parentFolder)
    $vCount:=$vCount+1
 Until($o.parentFolder="")
 ALERT("The path depth is: "+String($count))



Siehe auch 

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

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Systemdokumente
Nummer: 1547

Dieser Befehl kann in preemptive Prozessen laufen

 
SEITENINHALT 
 
GESCHICHTE 

Erstellt: 4D v16 R6

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v20 R7)