[gelöst] Programmverzeichnis auslesen Windows/Linux/Netzwerk
Verfasst: 23. August 2006 19:07
Hallo,
mal sehen, vielleicht eine dumme Frage:
Ich muss immer meine Datenbank (SQLite) im Programmverzeichnis finden, um sie zu öffnen. Eigentlich klar.
Aber:
1. Das aktuelle Verzeichnis mit QDir::currentPath() auszulesen, funktioniert nicht überall - es wird immer das Arbeitsverzeichnis zurückgegeben. Unter Linux entspricht das nicht unbedingt dem Programmverzeichnis, wenn das Programm nicht direkt aus dem Verzeichnis mit der exe-Datei aufgerufen wird, z.B. über einen Link (Verknüpfung) im Startmenü oder einen Pfadnamen+exe-Datei aus der Konsole.
2. Unter Windows klappt es immer, ich glaube, da in den Verknüpfungen standardmäßig als Arbeitsverzeichnis immer das Programmverzeichnis eingetragen wird.
3. Genauso verhält es sich in einem Netzwerk. Starte ich die exe-Datei von einem Netzlaufwerk aus, wird die Datei nicht gefunden.
4. Verwende ich statt dessen argv[0], bekomme ich nur den relativen Pfad des Programmverzeichnisses zurück.
Wie geht ihr sicher, immer das Prgrammverzeichnis zu finden?
Danke
mal sehen, vielleicht eine dumme Frage:
Ich muss immer meine Datenbank (SQLite) im Programmverzeichnis finden, um sie zu öffnen. Eigentlich klar.
Aber:
1. Das aktuelle Verzeichnis mit QDir::currentPath() auszulesen, funktioniert nicht überall - es wird immer das Arbeitsverzeichnis zurückgegeben. Unter Linux entspricht das nicht unbedingt dem Programmverzeichnis, wenn das Programm nicht direkt aus dem Verzeichnis mit der exe-Datei aufgerufen wird, z.B. über einen Link (Verknüpfung) im Startmenü oder einen Pfadnamen+exe-Datei aus der Konsole.
2. Unter Windows klappt es immer, ich glaube, da in den Verknüpfungen standardmäßig als Arbeitsverzeichnis immer das Programmverzeichnis eingetragen wird.
3. Genauso verhält es sich in einem Netzwerk. Starte ich die exe-Datei von einem Netzlaufwerk aus, wird die Datei nicht gefunden.
4. Verwende ich statt dessen argv[0], bekomme ich nur den relativen Pfad des Programmverzeichnisses zurück.
Wie geht ihr sicher, immer das Prgrammverzeichnis zu finden?
Danke