获取当前目录

来源:互联网 发布:穿越火线刷装备软件 编辑:程序博客网 时间:2024/05/20 19:50

获取当前目录

  • 1、GetCurrentDirectory()获取:
    函数原型:
DWORD GetCurrentDirectory(   DWORD nBufferLength, // buffer长度   LPTSTR lpBuffer // buffer   ); 

函数调用成功会返回目录装到buffer中的长度。

  • 2、使用GetModuleFileName()获取完整路径:
    原型
DWORD WINAPI GetModuleFileName(   HMODULE hModule,    //null表示当前模块,也可以是LoadLiberary得到的模块句柄   LPTSTR lpFileName,//buffer   DWORD nSize//长度   );

获取模块(dll,exe等)的运行目录,包括程序文件名。

代码:

    WCHAR path[MAX_PATH + 1] = { 0 };    GetCurrentDirectory(MAX_PATH,path);    WCHAR m_path[MAX_PATH + 1] = { 0 };    GetModuleFileName(NULL, m_path, MAX_PATH);    CString m_dic(m_path);    m_dic = m_dic.Left(m_dic.ReverseFind('\\'));    MessageBox(CString("path:")+path+CString("\r\nmodule_path:")+m_path+CString("\r\nmodule_dic:")+m_dic);

效果:
这里写图片描述
小结:

  • 1、GetCurrentDirectory()得到的路径是可修改的,不一定是想要的,可能得到的不是预期的结果
  • 2、GetModuleFileName()能得到模块包括文件名在内的完整路径,要获得目录的话去掉文件名即可
0 0