• 获取可执行程序当前路径目录,检查文件夹或文件是否存在,递归创建文件夹


    GetModuleFileName
    函数功能描述:获取当前进程已加载模块的文件的完整路径,该模块必须由当前进程加载

    DWORD WINAPI GetModuleFileName(
    _In_opt_ HMODULE hModule, //装载一个程序实例的句柄。如果该参数为NULL,该函数返回该当前应用程序全路径。
    _Out_ LPTSTR lpFilename, //是你存放返回的名字的内存块的指针,是一个输出参数
    _In_ DWORD nSize //装载到缓冲区lpFileName的最大值
    )

    返回值:如果返回为成功,将在lpFileName的缓冲区当中返回相应模块的路径,如果所设的nSize过小,那么返回仅按所设置缓冲区大小返回相应字符串内容。如果函数失败,返回值将为0

    使用方法举例

    //获取根目录
    CString getModulePath()          
    {
        //方式1
        CString strModule;
        HMODULE hmod = GetModuleHandle(NULL);//获取一个应用程序或动态链接库的模块句柄。只有在当前进程的场景中,这个句柄才会有效。
        GetModuleFileName(hmod, strModule.GetBuffer(MAX_PATH), MAX_PATH);//MAX_PATH是C语言运行时库中通过#define指令定义的一个宏常量,它定义了编译器所支持的最长全路径名的长度。
        strModule.ReleaseBuffer();//在使用GetBuffer后使用
    
        //方式2
        //char  exepath[MAX_PATH];
        //CString  strModule;
        //memset(exepath, 0, MAX_PATH);
        //GetModuleFileName(NULL, exepath, MAX_PATH);
        //strModule = exepath;
    
        return strModule;
    }
    1     BOOL ret = PathFileExists(strPath);//文件夹路径或文件名
    2     if (ret)
    3     {
    4     //存在
    5     }
    6     else
    7     {
    8     //不存在
    9     }    

     //递归创建文件夹   

    #include <ImageHlp.h>
    #pragma comment(lib, "imagehlp.lib")

    1         strFullPath += _T("D:\1\2\33\");
    2         char chPath[MAX_PATH];
    3         WideCharToMultiByte(CP_ACP, 0, LPCTSTR(strFullPath), -1, chPath, MAX_PATH, NULL, NULL);
    4         res = MakeSureDirectoryPathExists(chPath);
    5         if (!res)
    6         {
    7             return FALSE;
    8         }

     

  • 相关阅读:
    每日一题-mysql(持续更新)
    http面试问题集锦
    存储测试简析
    横向越权测试—安全漏洞
    性能数据的准备-Jmeter
    获取当天七天时间
    vue生命周期
    vue的全选与反选
    filter兼容问题
    Http与Https
  • 原文地址:https://www.cnblogs.com/ckrgd/p/8474403.html
Copyright © 2020-2023  润新知