MFC 获取当前工作路径和可执行文件路径
1.获取Debug或Release所在的路径
CString CIniDemoDlg::GetModuleDir() { char pFileName[MAX_PATH]; GetModuleFileName(NULL, pFileName, MAX_PATH); CString csFullPath(pFileName); int nPos = csFullPath.ReverseFind( _T('\\') ); if( nPos < 0 ) return CString(""); else return csFullPath.Left( nPos ); }
其中:MAX_PATH的定义在WINDEF.h中
运行结果为:
2. 获取当前工作路径(dsp所在路径)
CString GetWorkDir() { char pFileName[MAX_PATH]; int nPos = GetCurrentDirectory(MAX_PATH, pFileName); CString csFullPath(pFileName); if( nPos < 0 ) return CString(""); else return csFullPath; }
运行结果为:
3.路径分解函数:
void CIniDemoDlg::OnSeperate() { // TODO: Add your control notification handler code here char a_sFileName[256]; GetModuleFileName(NULL,a_sFileName,256); CString sPath; CString sDrive;//磁盘名 CString sDir;//文件路径 CString sFileName;//取出文件路径后的文件名 CString sExt;//文件扩展名 char drive[_MAX_DRIVE];//磁盘名 char dir[_MAX_DIR];//路径名 char fname[_MAX_FNAME];//文件名 char ext[_MAX_EXT];//扩展名 _splitpath(a_sFileName, drive, dir, fname, ext ); sDrive.Format("驱动%s\n",drive); sDir.Format("目录%s\n",dir); sFileName.Format("文件名%s\n",fname); sExt.Format("扩展名%s\n",ext); sPath= sDrive + sDir + sFileName + sExt; MessageBox(sPath); }
运行结果:
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步