wchar_t drive[_MAX_DRIVE];
wchar_t dir[_MAX_DIR];
_wsplitpath(sOutImagePath, drive, dir,NULL, NULL);
wchar_t newPath[_MAX_PATH] = { 0 };
_wmakepath(newPath, drive, dir, NULL, NULL);
DWORD ftyp = GetFileAttributes(newPath);
if (ftyp == INVALID_FILE_ATTRIBUTES)
return false; //something is wrong with your path!
if (ftyp & FILE_ATTRIBUTE_DIRECTORY)
return true; // this is a directory!
return false; // this is not a directory!
参考函数:
void _splitpath( const char *path, char *drive, char *dir, char *fname, char *ext );
void _wsplitpath( const wchar_t *path, wchar_t *drive, wchar_t *dir, wchar_t *fname, wchar_t *ext );
_tsplitpath 在不同的情况下代表不同的意思。
void _makepath( char *path, const char *drive, const char *dir, const char *fname, const char *ext );
void _wmakepath( wchar_t *path, const wchar_t *drive, const wchar_t *dir, const wchar_t *fname, const wchar_t *ext );
_tmakepath 在不同的情况下代表不同的意思。
DWORD GetFileAttributes(
LPCTSTR lpFileName // name of file or directory
);
获取文件属性信息:
方法2:
WCHAR buffer[MAX_PATH];
GetModuleFileName(nullptr, buffer, MAX_PATH);
PathRemoveFileSpec(buffer);
同类型方法
#define PathRemoveArgs PathRemoveArgsW
#define PathRemoveBlanks PathRemoveBlanksW
#define PathRemoveExtension PathRemoveExtensionW
#define PathRemoveFileSpec PathRemoveFileSpecW
#define PathRenameExtension PathRenameExtensionW