获取当前目录

获取当前目录

  • 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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值