Verzeichnis einlesen



  • hallo
    also ich bin gerade dabei eine mfc prog zu schreiben wo ich ein eingabefeld habe. das was ich in dem eingabefeld eingebe möchte ich in eine datei speichern die im selben verzeichnis wie die mfc exe liegen sollte. hier ist auch schon mein problem wie kann ich das aktuelle verzeichnis in dem die exe liegt herausbekommen?

    könntet ihr mir bitte ein einfaches quellcode beispiel zeigen wenn möglich???
    vielen dank schon mal in voraus



  • Hi,

    sorry aber auf ein Beispielcode hab ich jetzt keine Lust.
    Du kannst dir aber mal von deiner App-Klasse CMyApp das Member LPTSTR m_lpCmdLine; anschauen.

    Da steht die Kommandozeile drin (mit Pfadangabe), mit der die .exe aufgerufen wurde. Also schneidest du einfach aus diesem String alles raus ab und inklusive dem 'Appname.exe'.

    So hast du den Pfad des Verzeichnisses, in dem die .exe liegt.



  • Hi. Probier mal das hier:

    CString CFunctions::GetExePath(void)
    {
    	CString sIniPath;
    	int iPos;	
    
    	sIniPath = GetCommandLine();
    	iPos = sIniPath.ReverseFind( '\\');
    	sIniPath = sIniPath.Mid(1, iPos-1);
    
    	return sIniPath;
    }
    

    GetCommandLine() gibt dir den kompletten Pfad deines Programms zurück. Mit ReverseFind wird dann nach von rechts angefangen nach dem ersten Backslash gesucht. Wenn du die Position dann hast, wird der Dateiname einfach mit Mid() weggeschnitten.



  • du musst nicht wissen in welchem verzeichnis deine .exe ist sondern den dateinamen einfach relativ angeben. dann wird die datei automatisch in das gleiche verzeichnis gespeichert.

    CStdioFile file;
    file.Open("datei.txt", CFile::modeCreate | CFile::modeWrite | CFile::typeText);
    

    ps: absolut ist wenn du in der form C:\ordner\datei.txt angibst, sonst ist es relativ


Anmelden zum Antworten