Autor Beitrag
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Fr 18.01.13 19:58 
Hallo!

Für Windows ist das ja alles ganz einfach: suche ich ein bestimmtes Standardverzeichnis, zum Beispiel AppData oder CommonAppData oder sonstwas, gibt es einfach SHGetSpecialFolderLocation.

Wie sieht sowas aber auf Linux aus? Das Profilverzeichnis ist ja noch einfach (nämlich "~"), aber bei allen anderen gibt's ja doch größere Unterschiede zwischen den Distributionen, hauptsächlich haben Debian, Suse und Redhat ja doch unterschiedliche Vorstellungen davon, wie /usr und /opt gemeint sind. Und Arch erst...

Gibt es da eine Standard-API (oder ggf. auch Umgebungsvariablen) für, oder muss man wirklich die Distro abfragen und dann entsprechend mit festen Pfaden arbeiten?

Viele Grüße,
Martok

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Fr 18.01.13 22:58 
user profile iconMartok hat folgendes geschrieben Zum zitierten Posting springen:
zum Beispiel AppData oder CommonAppData
Zumindest dafür hat die XDG Base Directory Specification etwas anzubieten. Und wenn eine Distribution doch mal einen etwas exotischeren Wusnch haben sollte, funktioniert das Konzept, dass das dann doch bitte der Maintainer des jeweiligen Packages fixe, eigentlich recht gut.

user profile iconMartok hat folgendes geschrieben Zum zitierten Posting springen:
Und Arch erst...
:mrgreen:

_________________
>λ=
Martok Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Sa 19.01.13 14:51 
user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
Zumindest dafür hat die XDG Base Directory Specification etwas anzubieten.
Also für Ubuntu finde ich da 2 Pakete, beide nicht standardmäßig installiert. Und nu? :gruebel:
Wobei, nur libxdg-basedir scheint auch so direkt auf andern Plattformen zu existieren. Und überhaupt, was tu ich dann damit? Nur dagegen linken und die Funktionen aufrufen, oder?

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 20.01.13 00:28 
Unter Linux muss bei mir der User die Verzeichnisse stets selbst definieren, die Konfiguration dafür landet dann im Anwendungsordner bei der Installation. Bei Linux gibt es nun einmal viel weniger Standards als unter Windows. Das ist für die meisten Linux-User aber auch kein Problem, wenn sie das alles selbst angeben bzw. in einer Konfigurationsdatei einstellen müssen. :nixweiss:
Teekeks
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 211
Erhaltene Danke: 23



BeitragVerfasst: Mi 13.11.13 21:18 
Lazarus hat in Sysutils u.A. folgende Funktionen:

ausblenden Quelltext
1:
2:
3:
GetAppConfigDir(boolean); //Param: Global od nicht
GetTempDir(boolean); //Param: Global od nicht
GetUserDir();


Die geben je nach OS die verschiedenen Standard-Pfade zurück.

Für diesen Beitrag haben gedankt: Martok