Home-Pfad herausfinden

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
downloaditweb
Beiträge: 27
Registriert: Do 28. Jan 2010, 13:24
OS, Lazarus, FPC: openSuse Leap 42.3 (L 1.8 FPC 3.0.4)
CPU-Target: 64Bit

Home-Pfad herausfinden

Beitrag von downloaditweb »

Ich bin auf der Suche nach einer Funktion, die den Home-Pfad zurückgibt, wenn möglich plattformunabhängig.
Konkret:
unter Windows:
"X:\User\User_Name" (Win7, sonst "Dokumente und Einstellungen\User_Name" und/oder den Pfad zum Ordner "Anwendungsdaten"

unter Linux "/home/user_name" bzw. den Home-Pfad, der vom Benutzer verwendet wird.

Vor längerer Zeit (5 Jahre) hatte ich bereits eine solche Funktion programmiert, allerdings finde ich sie nicht mehr,
(wahrscheinlich gelöscht, als ich auf 64bit umgestiegen bin und sie sich nicht mehr kompilieren ließ :cry:),
leider weiß ich nicht mehr, wie sie funktionierte.

Deshalb meine Frage:
Hat jemand eine Idee, wie man das programmieren könnte, oder ob es so etwas schon gibt
(wahrscheinlich schon, aber Google hat diesmal nichts gefunden :( )?

Vielen Dank schon jetzt.

shokwave
Beiträge: 475
Registriert: Do 15. Nov 2007, 16:58
OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
CPU-Target: i386, x64
Wohnort: Gera

Re: Home-Pfad herausfinden

Beitrag von shokwave »

Hallo,

ich benutze dafür die Umgebungsvariable "HOME".

Code: Alles auswählen

HomeDir:=GetEnvironmentVariable('HOME');
Aber vielleicht hat hier noch jemand eine bessere Idee.
mfg Ingo

downloaditweb
Beiträge: 27
Registriert: Do 28. Jan 2010, 13:24
OS, Lazarus, FPC: openSuse Leap 42.3 (L 1.8 FPC 3.0.4)
CPU-Target: 64Bit

Re: Home-Pfad herausfinden

Beitrag von downloaditweb »

Vielen Dank, es funktioniert schon mal unter Linux/Unix-ähnlichen BS,
HOME ist wohl da die einfachste Lösung. :idea:

Nur wie das ganze für Windows, oder lieg ich falsch in der Annahme, dass das unter Windows nicht geht?

carli
Beiträge: 657
Registriert: Sa 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
CPU-Target: 64Bit

Re: Home-Pfad herausfinden

Beitrag von carli »

GetUserDir ist dein Kandidat.
Eine Funktion aus SysUtils.

http://lazarus-ccr.sourceforge.net/docs ... erdir.html" onclick="window.open(this.href);return false;

shokwave
Beiträge: 475
Registriert: Do 15. Nov 2007, 16:58
OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
CPU-Target: i386, x64
Wohnort: Gera

Re: Home-Pfad herausfinden

Beitrag von shokwave »

Unter Windows, gibt es "HOMEDRIVE"/"HOMEPATH" bzw. "USERPROFILE".

Was hast du eigentlich vor? Wenn du nur den Pfad zum speichern von Einstellungen suchst, dafür gibt es "GetAppConfigDir(false)".

[EDIT]
GetUserDir ist dein Kandidat.
Cool, die kannte ich noch nicht. :)
mfg Ingo

downloaditweb
Beiträge: 27
Registriert: Do 28. Jan 2010, 13:24
OS, Lazarus, FPC: openSuse Leap 42.3 (L 1.8 FPC 3.0.4)
CPU-Target: 64Bit

Re: Home-Pfad herausfinden

Beitrag von downloaditweb »

Vielen Dank, nächstes Mal sollte ich vielleicht eher die Unitbeschreibungen / Funktionsnamen durchsuchen als das Internet ;-)

:arrow: shokwave
Ja, ich will Einstellungen speichern und dabei aber "systemtypische" Speicherorte verwenden (Ordung muss sein ;-)),
und dabei verwende ich ungern den Installationspfad (mehrere Benutzer, ...)
Mit den Pfaden kann man dann (meistens) auch auf andere Ordner schließen (Arbeitsfläche, Bilderordner...) und kann dem Programmnutzer ersparen alle seine Pfade einzugeben.

Socke
Lazarusforum e. V.
Beiträge: 3178
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Home-Pfad herausfinden

Beitrag von Socke »

downloaditweb hat geschrieben:Ja, ich will Einstellungen speichern und dabei aber "systemtypische" Speicherorte verwenden (Ordung muss sein ;-)),
und dabei verwende ich ungern den Installationspfad (mehrere Benutzer, ...)
Du kannst über einen Parameter einstellen, ob GetAppConfigDir(Boolean) einen Speicherort für alle Benutzer oder nur für den aktuellen Benutzer zurückliefert (was bei Ein-Benutzer-System auch durchaus identisch sein kann).
downloaditweb hat geschrieben:Mit den Pfaden kann man dann (meistens) auch auf andere Ordner schließen (Arbeitsfläche, Bilderordner...) und kann dem Programmnutzer ersparen alle seine Pfade einzugeben.
Beachte bitte, dass diese dann selbstverständlich betriebssystem- und sprachabhängig sind. Unter Linux könnte dir xdg-user-dirs dabei helfen.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Antworten