A function to retrieve the directory of a program






3.15/5 (13 votes)
A small function to retrieve the directory a program is being executed from
Introduction
I've needed to get the directory a program was running several times. I've used it to determine where configuration files could be found. I've used it for determining where images should be stored/loaded. I've also had to write it from scratch several times :( . I'm submitting it here so hopefully someone else doesn't have to figure it out themselves.
I've found that using _getcwd
isn't accurate whenever the user is allowed
to use the file dialogs to open or save files. If they move to
a different directory in the file dialogs, the current working
directory is changed as well
CString GetProgramDir() { CString RtnVal; char FileName[MAX_PATH]; GetModuleFileName(AfxGetInstanceHandle(), FileName, MAX_PATH); RtnVal = FileName; RtnVal = RtnVal.Left(RtnVal.ReverseFind('\\')); return RtnVal; }
It's not much, but I've found it helpful and hope that someone else will as well.