您的位置:首页 > 其它

[转]VC获取当前程序文件的路径,文件名以及路径+文件名

2010-11-12 23:26 363 查看
来源:http://bbs.witbase.com/redirect.php?tid=3253&goto=lastpost

 

1.方法1
char pBuf[MAX_PATH]; //存放路径的变量
GetCurrentDirectory(MAX_PATH,pBuf); //获取程序的当前目录
strcat(pBuf,"//");
strcat(pBuf,AfxGetApp()->m_pszExeName);
strcat(pBuf,".exe"); //获取程序的全文件名
2.方法2
//函数返回应用程序所在的路径
CString CClientApp::ReturnPath()
{
CString sPath;
GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
sPath.ReleaseBuffer ();
int nPos;
nPos=sPath.ReverseFind('//');
sPath=sPath.Left(nPos);
return sPath;
}
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
CFileDialog dlg(TRUE)
CFileDialog dlg(TRUE);//<-这里用TRUE与FALSE有什么不同?
// TRUE是"打开"对话框
// FALSE是"另存为"对话框
int ret=dlg.DoModal();
if(ret==IDOK)
{
CString pathname=dlg.GetPathName(); //得到文件所在路径+文件名
CString filename=dlg.GetFileName(); //得到文件名
char tbuf[120];
sprintf(tbuf,"The %s file in %s is saved!",filename,pathname);
AfxMessageBox(tbuf);
}

3.方法3
使用APi函数GetModuleFileName
char path[MAX_PATH];
GetModuleFileName(NULL, path, MAX_PATH); //获取到完整路径如:E:/Tools/qq.exe
*strrchr(path,'//') = '/0'; //截取路径E:/Tools
4.方法4
MFC
char path[MAX_PATH];
memcpy(path, AfxGetApp()->m_pszHelpFilePath, MAX_PATH) //获取到完整路径如:E:/Tools/qq.hlp
*strrchr(path,'//') = '/0'; //截取路径E:/Tools

用这个函数也可以做到截取路径
PathRemoveFileSpec(LPTSTR pszPath)

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  path null api file
相关文章推荐