Chemin d'enregistrement d'un fichier dans le dossier utilisateur d'un mac

Bonjour a tous,
Pouvez-vous m’aider sur ce petit casse tete ?

Depuis des annees, je genere des fichiers pdf qui sont enregistres automatiquement dans un dossier dropbox partage par tous. Et ca marchait tres bien.
Jusqu’ici les dossiers dropbox etaient places dans le disque dur de chaque utilisateur qui etaient tous nommes : DD_[nom du possesseur] (j’ai un seul utilisateur par machine).
Le chemin d’enregistrement etait donc :
<code 4D>
$NomPossesseur:=nom du possesseur
$NomDisqueDur:=“DD_”+$NomPossesseur
$Separateur:=caratere(58)
$Chemin:=$NomDisqueDur+$Separateur+"Dropbox:+$Separateur+…
</code 4D>

Suite a un changement de systeme, le dossier dropbox se trouve maintenant dans le dossier utilisateur (session) (qui est l’emplacement par defaut et que je ne peux et ne veux plus deplacer).
Donc logiquement le chemin est maintenant :
<code 4D>
$NomPossesseur:=nom du possesseur
$Separateur:=caratere(58)
$Chemin:=$NomPossesseur"+$Separateur+"Dropbox:+$Separateur+…
</code 4D>

Pourquoi cela ne fonctionne-t-il pas ?

Merci de votre aide !
et… ne prenez pas froid :slight_smile:

4D V13.6 - Mac OS Sierra 10.12.6

Bonjour,

Peut-etre :

<code 4D>
$Path:=Convert path POSIX to system("/Users/"+Current machine owner+"/Dropbox/")
</code 4D>

Ou bien :

<code 4D>
$Path:=Replace string(System folder(Documents folder);“Documents”;“Dropbox”)
</code 4D>

: Vincent DE LACHAUX

<code 4D>
$Path:=Replace string(System folder(Documents
folder);“Documents”;“Dropbox”)
</code 4D>

this is bad coding like this one:
<code 4D>
$database_name:=Replace string(Structure file();Get 4D folder(Database folder;);"")
</code 4D>
The second works fine most of the time, until you build a Windows Final Application. Might crash your database if not on C-drive.
I prefer for my sanity
<code 4D>
$systemFolder:= System folder(Documents folder)
if($systemFolder contains nonsens)

else
$Path:=Replace string(systemFolder;“Documents”;“Dropbox”)
end if
</code 4D>

Merci a vous deux !

Ca fonctionne…

Ce qui nous donne francais (pour ceux que ca interesse):

Methode 1 :
<code 4D>
$Chemin_Dossier_DROPBOX:=Convertir chemin POSIX vers systeme("/Users/"+Nom du possesseur+"/Dropbox/")
</code 4D>

Methode 2 :
<code 4D>
C_TEXTE($DossierSysteme)
$DossierSysteme:=Dossier systeme(Dossier documents)
//> donne le chemin vers le Dossier “Documents” de l’utilisateur
Si ($DossierSysteme="")
// if($systemFolder contains nonsense) - What kind of nonsense ??
Sinon
$Chemin_Dossier_DROPBOX:=Remplacer chaine($DossierSysteme;“Documents”;“Dropbox”)
Fin de si
</code 4D>

Dans les 2 cas, le chemin retourne se termine par le caractere separateur de repertoire (: ou \ selon la plateforme).
Je le retire et ne l’ajoute que lorsque j’ajoute un dossier ou un fichier.
<code 4D>
$Chemin_Dossier_DROPBOX:=Sous chaine($Chemin_Dossier_DROPBOX;1;Longueur($Chemin_Dossier_DROPBOX)-1)
</code 4D>

Voila merci de votra aide !