mit GetModuleFileName(NULL,(char*) &fullpath,200) suchen, ob DAtei in Unterverzeichnis exsitiert



  • Hallo!

    Ich möchte eine Datei laden, wenn sie in einem Unterverzeichnis der Apllikation vorhanden ist.
    MFC VC++ 6:
    Mit

    GetModuleFileName(NULL,(char*) &fullpath,200);
    

    bekomme ich den Anwendungspath in einem char array fullpath

    Jetzt möchte ich noch gezielt darunter im Unterverzeichnis "xy" die Datei "standard.txt" suchen und öffnen.

    mit

    if(((stream = fopen( FileName, "rb" ))!= NULL) )
    

    sehe ich, ob eine Datei da ist. wobei FileName ein *char ist.

    Aber ich bekomme es partout nicht hin, den Vollständigen Namen der Datei in einem char zu bekommen.Path + Namen

    Mit strcat oder strcpy müsste man so etwas schaffen, kann mir jemand ein konkretes Beiuspiel geben, wo aus fullpath und "\xy\standard.txt" ein kompletter Dateiname gebildet wird?
    Danke im Voraus für die Hilfe
    frenchcancan


  • Mod

    TCHAR szPath[_MAX_PATH];
    GetModuleFileName(NULL,szPath,_MAX_PATH);
    _tcscpy(PathFindFileName(szPath),_T("standard.txt"));
    


  • Alternativ:

    TCHAR szPath[_MAX_PATH]; 
    GetModuleFileName(NULL, szPath, _MAX_PATH); 
    PathRemoveFileSpec(szPath); PathAppend(szPath, _T("xy\standard.txt"));
    


  • Hallo!
    Vielen Dank an beide!
    ich bekomme aber dann die Linkermeldung:
    Nichtaufgeloestes externes Symbol __imp__PathRemoveFileSpecA@4
    und LNK2001: Nichtaufgeloestes externes Symbol __imp__PathAppendA@8

    Muss ich etwas miteinbinden?
    frenchcancan


  • Mod

    in den Code entweder:

    #pragma comment(lib,"shlwapi.lib")
    

    Oder die shlwapi.lib in den Linker Optionen als weitere Library hinzufügen.



  • 🙂 hat mir sehr geholfen
    Vielen Dank und Gruß
    frenchcancan


Anmelden zum Antworten