【MFC】 -002 设置当前工作目录
在VC开发过程中,当需要访问本地文件路径时,可以选择绝对路径和相对路径两种方式。使用绝对路径能够使程序在开发机上能够确保可以访问到需要的文件,但缺点是部署的时候需要让部署计算机与开发计算机路径保持绝对一致,这在实际应用中很难保证。使用相对路径,可以避免在代码中出现对路径的绝对编码,通常是相对当前工作目录进行目录设置。
但在使用相对路径时,经常出现由于不清楚当前工作目录的真实路径而导致的目录出错。因此,在程序启动时可以先设置一下当前工作目录,强迫程序将当前工作目录设置到自定义的目录中,这样可以保证相对路径使用时的正确性。
示例代码中所做的是将exe程序所在目录设置为当前工作目录。
//设置工作目录
HMODULE hExe = GetModuleHandle(NULL);
CString fName;
TCHAR fNameBuf[MAX_PATH];
GetModuleFileName(hExe, fNameBuf, MAX_PATH);//获取程序的绝对路径
CString fPath = CString(fNameBuf).Left(CString(fNameBuf).ReverseFind(_T('\\')));//去掉exe文件名
SetCurrentDirectory(fPath);//设置exe文件所在目录为当前工作目录