Entwickler-Ecke

Dateizugriff - Standardverzeichnisse unter Linux


Martok - Fr 18.01.13 19:58
Titel: Standardverzeichnisse unter Linux
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 [http://www.entwickler-ecke.de/viewtopic.php?t=9428].

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


Kha - 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 [http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html] 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 - 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 [http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html] 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?


jaenicke - 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 - Mi 13.11.13 21:18

Lazarus hat in Sysutils u.A. folgende Funktionen:


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.