Wo Dateien platzieren?
-
und wie macht es jedes andere Programm auch?
Durch installation? kommt leider nicht in Frage, also..?
-
JustAnotherNoob schrieb:
Hi, was tut man wenn man ein Programm ohne Installation(Linux&Windows) starten können soll, es aber von Konfigurationsdateien abhängig ist?(Also z.B. Dateien im Programmordner, aber es ist ja nicht möglich den Programmordner zu ermitteln?)
Wenn die Konfigurationsdateien im selben Ordner oder bekannten relativen Pfad dazu sind, dann hol dir doch einfach den Pfad deiner Exe-Datei und du weißt, wo die Konfig.-Dateien liegen. Ich verstehe das Problem auch nicht so ganz, evtl kannst du bezüglich der Konfig.-Dateien noch ein wenig konkreter werden?
-
JustAnotherNoob schrieb:
und wie macht es jedes andere Programm auch?
Durch installation? kommt leider nicht in Frage, also..?Dateien wiederfinden hat doch nix mit der Installation zu tun.
-
hmm so richtig habe ich es auch nicht verstanden, aber leg dir doch eine Verzeichnisstruktur an.
DeineExe.exe
OrdnerDerBilder
OrdnerDerKonfig(s)
OrdnerDerWasWeißIchUnd dann kannst du doch über den Pfad deiner Exe auf alle anderen Ordner zugreifen?Fals das nicht das war was du wolltest, versuch das Problem besser zu erklären.
-
JustAnotherNoob schrieb:
und wie macht es jedes andere Programm auch?
Durch installation? kommt leider nicht in Frage, also..?Wie soll man Dir irgendwas beantworten, wenn Du nicht mal ansatzweise beschreibst, was Du überhaupt willst?
-
Ich will meinem Programm XML-Dateien, Bilder und Pythonscripts mitgeben, aber das Programm nicht installieren. Das ganze soll möglichst plattformunabhängig sein(wenn möglich), mindestens aber unter Linux und Windows laufen. Wenn ich die Dateien nun einfach in den Ordner geschoben werden, müsste ich an den Ordner der .exe rankommen. argv[0] ist da ja nicht gerade zuverlässig und mit relativen Pfaden in boost::filesystem::path siehts genau so aus.
Ich habe deswegen von Konfigurationsdateien geredet, weil mir erst nur die XMLDateien in den Sinn gekommen sind und die im Prinzip so etwas darstellen.
Das Programm erstellt die Dateien jedoch nicht, die Frage ist nur wie ich bereits existierende Dateien mitliefere und auf sie lesend zugreifen kann.
-
Also ich will es mal ganz einfach sagen, wie wäre es wenn du einfach eine .bat baust die nichts weiter macht als dir den Pfad in eine datei umzuleiten ála
[bat](:D)
cd > pfad.txt
[/bat]Und diesen Pfad dann mit deiner exe konkatinierst?
-
Also wenn der User irgendwas an deiner File Struktur rumbastelt und dann das Programm nicht mehr läuft, respektive einen Fehler ausgibt, dann ist das seine Schuld..
Und wenn der User einen eigenen Ordner angeben können soll, dann musst du halt einen Dialog starten und den Ort eingeben lassen.
-
Also wenn der User irgendwas an deiner File Struktur rumbastelt
Muss er ja gar nicht, es reicht - zumindest unter Linux, habs unter Windows noch nicht probiert, aber auch da kann man so etwas erreichen - wenn er eine Verknüpfung erstellt. Dann wird im Ordner der Verknüpfung gesucht und das haut nicht hin
-
Dann schreibt halt ne Funktion mit ifdef für win und linux
unter win gehts mit
http://msdn.microsoft.com/en-us/library/ms683197.aspx
-
Wenns anders wirklich nicht geht, auch akzeptabel - kann mir noch jemand sagen, wie das unter Linux auszusehen hätte?