Pfad herausfinden



  • flammenvogel schrieb:

    Was meint ihr mit FileOpen Dialog?

    Das ist der Standarddialog, den die API-Funktion GetOpenFileName anzeigt. Das sollte nur ein Beispiel dafür sein, wie man zur Laufzeit das Arbeitsverzeichnis eines Programmes ändern kann, auch wenn das nur ein Seiteneffekt dieser Funktion ist.





  • Ähm ja, ich benutze den Dialog in einem meiner Programme und ich lade die Bilder in dem Programm nicht über den vollständigen Dateipfad...



  • flammenvogel schrieb:

    Ähm ja, ich benutze den Dialog in einem meiner Programme und ich lade die Bilder in dem Programm nicht über den vollständigen Dateipfad...

    Und? Bloß weil es bei dir klappt, ist das doch keine Garantie.

    Möglicherweise lädst du die Bilder, bevor du GetOpenFileName benutzt. Oder du wechselst gar nicht das Verzeichnis. Oder du setzt es hinterher zurück. Oder du benutzt 9x/ME mit OFN_NOCHANGEDIR. Darum geht es doch gar nicht.



  • Wenn du in dem Dialog in einen anderen Ordner wechselst, ändert sich auch das Arbeitsverzeichnis.



  • dann macht es doch ganz einfach lasst euch den programmpfad doch geben z.b

    int main (int argc, char *argv[])
    {
      cout<<"Dateiname:      "<<argv[0]<<endl;
    

    argv[0] enthält ja den kompleten pfad + dateienamen

    als nächstes einfach nach dem letten / einfach abschneiden und das ganze z.b. in nem string ablegen

    und danach kannstde jedes unterverzeichnis ansprechen

    pfad = root
    pfad += unterverzeichnis_dateinamen
    

    fertig

    in der winapi gab es glaub ich sogar nen einfachen befehl dafür



  • argv[0] enthält ja den kompleten pfad + dateienamen

    Nicht immer.



  • Das mit dem pfad nicht angeben weil die die im Verzeichnis der .exe Datei drin sind brauchen keine extra pfadangabe hab ich mir auch schon gedacht...
    Aber das is ned so gut glaub ich...

    Wird der pfad vlt irgendwo gespeichert oder so?
    Ich möchte dann ja auf die Bilder zugreifen können wenn ich alles installiert hab.
    Und keine variablen Pfade zu verwenden wäre nicht so toll, weil viele Leute Spiele in irgendwelchen Ordnern speichern.

    Ich meine man könnte den Pfad auch in eine .txt Datei schreiben oder so, aber die müsste man auch irgendwo speichern (in einem fixen Verzeichnis).

    Fällt euch noch was ein?



  • Du wurdest doch auf die FAQ verwiesen?! Da stehts doch drin! (GetModuleFileName)



  • oh sorry...hab ich verpeilt! 🙄


Anmelden zum Antworten