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

Home

 
4D v19.8
Pfadnamen für File und Folder als Objekte

Pfadnamen für File und Folder als Objekte  


 

Mit Befehlen, Methoden und Eigenschaften in diesem Kapitel können Sie Dateien und Ordner als Objekte behandeln. Wir verwenden dafür die englischen Bezeichnungen File und Folder. Die Nutzung von File und Folder machen Ihre Verwaltung leistungsstark und flexibel. Wollen Sie beispielsweise eine neue Datei im aktuellen Ordner Documents des Benutzers anlegen, können Sie schreiben:

 $new:=Folder(fk documents folder).file("Archives/John4D.prefs").create()

Außerdem unterstützen File und Folder als Objekte fileSystems, was einen Pfad im Kontext zu Ordnern der Hauptanwendung liefert. 

4D akzeptiert verschiedene "filesystem" Pfadnamen, die spezifische 4D Ordner mit unterschiedlicher Position auf macOS und Windows angeben. Filesystem Pfadnamen sind aus zwei Gründen hilfreich:

  • Unabhängigkeit: Sie können Ihre Lösung, unabhängig vom Betriebssystem, von einer Stelle zu einer anderen bewegen, ohne sich Gedanken über Pfade zu machen
  • Sicherheit: Kein Code kann auf Elemente zugreifen, die oberhalb des File System Root auf der Festplatte liegen (sandboxing).

Folgende Filesystem Pfadnamen werden unterstützt: 

FilesystemBezeichnet
"/RESOURCES"Ordner Resources der aktuellen Datenbank
"/DATA"Datenordner der aktuellen Datenbank
"/PACKAGE"Datenbankordner (mit oder ohne Endung .4dbase)
"/LOGS"Ordner Logs der Datenbank

Hinweis: In einigen Fällen lässt sich der Ordner Resources der aktuellen Datenbank als "/SOURCES" auflösen und der Datenbankordner als "/PROJECT". Das ändert nicht das Ziel des aktuellen Filesystem. 

Die POSIX Syntax wird auf allen Plattformen unterstützt. Wir empfehlen die POSIX Syntax, da sie am flexibelsten ist und standardmäßig verwendet wird (wird von den Eigenschaften file.path und folder.path zurückgegeben).

Mit dieser Syntax gilt:

  • Ordner werden durch "/" getrennt
  • absolute Pfadnamen starten mit einem "/"
  • Um einen Ordner in einem relativen Pfad nach oben zu setzen, verwenden Sie "../" vor dem Pfadnamen (zur Sicherheit können Sie das fileystem nicht nach oben setzen).

In POSIX Syntax müssen Sie mit den Befehlen File und Folder "filesystem" Pfadnamen verwenden, z.B.:

 $pathFile:=File("/DATA/Archives/file 2.txt")
 $pathFolder:=Folder("/RESOURCES/Pictures")

Plattformspezifische Syntax richtet sich nach dem Betriebssystem, auf dem der Befehl ausgeführt wird. Beachten Sie, dass beim Erstellen mit dieser Syntax das Objekt File oder Folder mit der Konstanten fk platform path als Parameter deklariert werden muss. 

Windows
Folgende Muster werden unterstützt:

  • Ordnertrenner sind "\"
  • Der Text enthält ':' und '\' als zweites und drittes Zeichen,
  • Der Text startet mit "\\".

Beispiele unter Folder:

 $myFolder:=Folder("C:\\Monday";fk platform path).create()
 $myFolder:=Folder("\\\\svr-internal\\tempo";fk platform path).create()

Hinweis: Weitere Informationen dazu finden Sie im Abschnitt Escape Sequenzen und Pfadnamen unter Windows .

macOS
Folgende Muster werden unterstützt (HFS+ Syntax):

  • Ordnertrenner sind ":"
  • Der Pfad darf nicht mit einen Punkt starten

Beispiele unter Folder:

 $myFolder:=Folder("macintosh hd:";fk platform path).create()
 $myFolder:=Folder("Monday:Tuesday";fk platform path).create() //ein Volume muss Monday heißen

File und Folder Constructors
Die Befehle File und Folder akzeptieren nur absolute Pfadnamen. Relative Pfadnamen werden nicht unterstützt und geben Fehler zurück. Zum Beispiel ist folgender Code nicht erlaubt:

  //ERROR
 $myFolder:=Folder("myFolder").create() //relativer Pfadname mit Constructor

Sie können filesystems verwenden (siehe oben), um Dateien und Ordner an verschiedenen Stellen (Datenbankordner, Systemordner, etc.) zu verwalten. Beispiel:

 $myFolder:=Folder("/PACKAGE";"myFolder").create() //auf .4db Ebene erstellter Ordner
 $myFile:=File("/DATA/Prefs/tempo.txt").create() //im Datenordner angelegter Ordner

.file() und .folder() Methoden für Ordner
Methoden von Objekten wie folder.file und folder.folder erwarten relative POSIX Pfadnamen. Zum Beispiel:

  //Referenz auf einen Ordner "Picture" innerhalb des Benutzerordners Documents
 $userImages:=Folder(fk documents folder).folder("Pictures")
  //Einen Ordner auf der Festplatte erstellen
 $myFolder2:=Folder(fk desktop folder).folder("myFolder").create()

Absolute Pfadnamen werden nicht unterstützt und geben Fehler zurück.

In Kombination mit Objektnotation bieten die Befehle und Methoden dieses Kapitels vielfältige Möglichkeiten zum Verwalten von Dateien und Ordnern. Hierzu ein paar Beispiele:

 $f:=Folder(fk desktop folder).folder("archive/jan2019")
 
 $f2:=Folder("/DATA/archive/jan2019").file("total.txt")
 
 $f3:=Folder("/DATA/archive/jan2019")
 
 $f4:=File("/DATA/info.txt")
 
 $f5:=File("c:\\archives\\local\\jan2019.txt";fk platform path)
 
 $f6:=File(fk backup log file)

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: File und Folder

 
SEITENINHALT 
 
GESCHICHTE 

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v19)
4D Programmiersprache ( 4D v19.1)
4D Programmiersprache ( 4D v19.4)
4D Programmiersprache ( 4D v19.5)
4D Programmiersprache ( 4D v19.6)
4D Programmiersprache ( 4D v19.7)
4D Programmiersprache ( 4D v19.8)