SoFunction
Updated on 2025-03-07

Detailed explanation of path decomposition based on Windows API


    LPTSTR szfileName = new TCHAR[MAX_PATH];

    GetModuleFileName(NULL, szfileName , MAX_PATH);

// Get information such as drive letter, file name, extension, etc.
    wchar_t drive[_MAX_DRIVE];
    wchar_t dir[_MAX_DIR];
    wchar_t fname[_MAX_FNAME];
    wchar_t ext[_MAX_EXT];
    errno_t err;
    err = ::_wsplitpath_s(szFileName, drive, _MAX_DRIVE, dir, _MAX_DIR,
        fname, _MAX_FNAME, ext, _MAX_EXT);
// Get only paths
    PathRemoveFileSpec(szFileName);