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
Chemins des objets fichier et dossier

Chemins des objets fichier et dossier  


 

Les commandes, méthodes et propriétés de ce thème vous permettent de gérer des fichiers et des dossiers en tant qu'objets. Cela rend la gestion des fichiers et dossiers souple et puissante. Par exemple, pour créer un nouveau fichier dans le dossier Documents de l'utilisateur courant, vous pouvez écrire :

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

De plus, les objets fichier et dossier prennent en charge les filesystem, fournissant un chemin contextuel aux principaux dossiers de l'application. 

4D accepte plusieurs chemins de "filesystem" qui désignent des dossiers 4D spécifiques avec un emplacement variable sur macOS et Windows. Les chemins des filesystem sont utiles pour deux raisons principales : 

  • L'indépendance : Vous pouvez déplacer votre solution d'un emplacement à un autre, indépendamment du système d'exploitation, sans vous préoccuper des chemins,
  • La sécurité : Aucun code peut accéder aux éléments d'accès situés au-dessus de la racine des filesystem sur disque (sandboxing).

Les filesystem des fichiers suivants sont pris en charge : 

filesystemDésigne
"/RESOURCES"Le dossier ressources de la base courante
"/DATA"Le dossier de données de la base courante
"/PACKAGE"Dossier de la base de données (avec ou sans extension 4dbase)
"/LOGS"Dossier Logs de la base de données

Note : Dans certains cas, le dossier ressources de la base courante peut être résolu en tant que "/SOURCES" et le dossier de la base peut être résolu en tant que "/PROJECT". Il ne modifie pas la cible du filesystem. 

La syntaxe POSIX est prise en charge sur toutes les plateformes. La syntaxe POSIX st recommandée, puisqu'il s'agit de la syntaxe la plus souple. Elle est utilisée par défaut (retournée par les propriétés  fichier.path et dossier.path).

Avec cette syntaxe :

  • les dossiers sont séparés par "/"
  • les chemins absolus commencent par "/"
  • pour déplacer un dossier dans un chemin relatif, utilisez "../" devant le chemin (pour des raisons de sécurité, vous ne pouvez pas déplacer le filesystem).

En règle générale dans la syntaxe POSIX, vous utiliserez les chemins "filesystem" avec les commandes File et Folder, par exemple :

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

La syntaxe spécifique à la plateforme dépend du système d'exploitation sur lequel la commande est exécutée. A noter que lors de la création d'un objet fichier ou dossier avec cette syntaxe, vous devez le déclarer à l'aide de la constante fk platform path comme paramètre. 

Windows
Les modèles suivants sont pris en charge :

  • les séparateur de dossiers : "\"
  • le texte contient ':' et '\' en tant que deuxième et troisième caractère,
  • le texte commence par "\\".

Exemples avec Folder:

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

Note : Pour plus d'informations sur le caractère "\\', veuillez vous reporter au paragraphe Saisie de chemins d'accès Windows et séquences d'échappement.

macOS
Les modèles suivants sont pris en charge (HFS+ syntaxe) :

  • les séparateur de dossiers : ":"
  • le chemin ne doit pas commencer par  ":"

Exemples avec Folder :

 $myFolder:=Folder("macintosh hd:";fk platform path).create()
 $myFolder:=Folder("Lundi:Mardi";fk platform path).create() //un volume doit être appelé Lundi

Constructeurs de Fichier et Dossier 
Les commandes File et Folder n'acceptent que les chemins absolus. Les chemins relatifs ne sont pas pris en charge et retourneront des erreurs. Par exemple, le code suivant n'est pas permis :

  //ERREUR
 $myFolder:=Folder("myFolder").create() //chemin relatif avec le constructeur

Si vous souhaitez gérer des fichiers ou des dossiers dans plusieurs emplacements (dossier de la base de données, dossiers systèmes, etc.), vous pouvez utiliser filesystems (voir ci-dessus). Par exemple, vous pouvez écrire :

 $myFolder:=Folder("/PACKAGE";"myFolder").create() //dossier créé au niveau .4db
 $myFile:=File("/DATA/Prefs/tempo.txt").create() //fichier créé dans le dossier des données

Les méthodes dossiers .file() et folder() 
Les méthodes des objets fichier et dossier telles que dossier.file( ) et dossier.folder( ) attendent des chemins POSIX relatifs. Par exemple :

  //pour référener un dossier "Images" dans le dossier documents de l'utilisateur
 $userImages:=Folder(fk documents folder).folder("Images")
  //pour créer un dossier sur le bureau
 $myFolder2:=Folder(fk desktop folder).folder("myFolder").create()

Les chemins absolus ne sont pas pris en charge et retourneront des erreurs.

La flexibilité des commandes et méthodes de ce thème, associées à la notation objet, vous offre plusieurs possibilités pour gérer les fichiers et dossiers, comme indiqué dans les exemples suivants :

 $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 dossier fichiers d'historique)

 
PROPRIÉTÉS 

Produit : 4D
Thème : Fichier et dossier

 
PAGE CONTENTS 
 
HISTORIQUE 

 
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)