Hallo,
in einem QT Programm nutze ich #include <dirent.h> zum Auflisten von Dateien/Verzeichnissen. Per opendir("."); erhält man dann normalerweise den Zugriff auf das Verzeichnis in dem das Programm selber liegt.
wenn ich ein QT Programm über QT kompiliere/ausführe also "release" dann funktioniert alles prima.
Unabhängig von QT unter Mate lässt sich das Programm nicht per Doppelklick starten ("xyz konnte nicht angezeigt werden. für dem Dateityp ist keine Anwendung installiert etc") obwohl unter Eigenschaften "Datei als Programm ausführen" ein häckchen dran ist. Wenn ich dann das Programm über das Mate-Terminal starte, dann stimmt vom Programm die Ermittlung des Verzeichnis nicht mehr -> Es wird dann das User-Verzeichnis aufgelistet und nicht mehr das Verzeichnis des Programms. Aus irgendwelchen Gründen denkt dann das Programm es liegt im User-Verzeichnis was natürlich falsch ist.
Wie kann ich das Programm starten, dass das Verzeichnis stimmt?
Grüße
QT Programm nimmt falsches Verzeichnis
Re: QT Programm nimmt falsches Verzeichnis
Soweit mir bekannt, bekommt man dann das cwd – also das Verzeichnis, in dem man sich befindet, wenn man das Programm aufruft.debianx hat geschrieben:01.08.2018 16:36:58Per opendir("."); erhält man dann normalerweise den Zugriff auf das Verzeichnis in dem das Programm selber liegt.
Re: QT Programm nimmt falsches Verzeichnis
Genau, und man darf/kann nicht im Programmcode davon ausgehen, daß dies das Verzeichnis ist, in dem auch die Anwendung liegt -- im Gegenteil.niemand hat geschrieben:01.08.2018 17:52:35Soweit mir bekannt, bekommt man dann das cwd – also das Verzeichnis, in dem man sich befindet, wenn man das Programm aufruft.
Den Pfad der Anwendung bekommt man in Qt-Anwendungen mit QCoreApplication::applicationDirPath().
Re: QT Programm nimmt falsches Verzeichnis
Danke! ok dann ist es logisch.
Re: QT Programm nimmt falsches Verzeichnis
Leicht OT: http://doc.qt.io/qt-5/qdir.html kennst Du schon?
Re: QT Programm nimmt falsches Verzeichnis
Danke, QT hat echt alles zu bieten.eggy hat geschrieben:02.08.2018 00:20:07Leicht OT: http://doc.qt.io/qt-5/qdir.html kennst Du schon?
ps: nicht einmal das neue c++17 std::filesystem kann den App-Pfad rausgeben (wohl auch cwd). Habs wie vorgeschlagen jetzt mit QCoreApplication::applicationDirPath() gemacht