编写程序时,有时需要程序获取当前程序运行时的路径,Windows提供了
GetModuleFileName()函数来获取当前进程已加载模块的文件的完整路径,此函数得到的路径包含有运行的exe程序,但有时我们不需要得到完整的路径。
此时用类CSplitPath可以很好的解决路径问题,首先需导入SplitPath.h和SplitPath.cpp文件,并写如下代码:
TCHAR BUF[MAX_PATH+1];
GetModuleFileName(NULL,BUF,MAX_PATH);
CSplitPath sp;
sp.Split(BUF);
CString szModulePath;
szModulePath += sp.GetDrive(); //获取路径中的设备,即所在的盘,如C:
szModulePath += sp.GetDirectory(); //获取路径
此时szModulePath即为路径名,如需在当前路径下创建文件夹可以再添加szModulePath+=_T("
\\log"),CreateDirectory(szModulePath,NULL),创建一个log文件夹。