Chemin resources

<code 4D>
//Fs_resourcesPath (cheminUnix_t {;verifierExistence_b) -> txt
//$0 chemin exprimé pour la plate forme courante
//$1 chemin Unix relatif dans le dossier Resources
// courant, tel que “dossier1/dossier2/document.txt”
//$2 optionnel : si passé et vrai, on ne retourne le chemin que
// s’il correspond à un document ou un dossier existant
C_TEXTE($1)
C_BOOLÉEN($2)
//construction chemin relatif dossier Resources courant
$path_t:=Convertir chemin système vers POSIX(Dossier 4D(Dossier Resources courant))
$path_t:=$path_t+$1
$path_t:=Convertir chemin POSIX vers système($path_t)
Si (Nombre de paramètres>1)
Si ($2) //ne retourner le chemin que s’il est valide
Si (Tester chemin acces($path_t)<0) //ça être ni document ni dossier
$path_t:=""
Fin de si
Fin de si
Fin de si
$0:=$path_t
//_
</code 4D>

Bonjour Arnaud,

Perso j’écris ce genre de code :

<code 4D>
C_TEXTE($vt_filepath)
$vt_filepath:=Dossier 4D(Dossier Resources courant)+“dir”+Séparateur dossier+“file.xml”
ASSERT(Tester chemin acces($vt_filepath)=Est un document;“File “”+$vt_filepath+”" not found !")

// suite du code (on part du principe que le fichier est bien présent).

</code 4D>

J’utilise des ASSERT car je part du principe que si mon code s’attend à trouver un fichier dans les resources et que ce fichier n’est pas là c’est un gros problème (application corrompue ?). Je préfère bloquer le savoir, etc… (principe du “fail fast”, “fail early/loudly”).

Sinon très bonne année 2018 à tous !!!

Hello Bruno,
je vais reprendre le coup de l’assertion, tu as raison, c’est plus logique. Par contre j’aime bien pouvoir stocker mes chemins en cross-plateforme, et au-delà de 1 “+Séparateur dossier+” je déprime ! :frowning:

Une bonne année 2018 à tous !