如何获得驱动器GUID值?

时间:2014-05-18 20:19:39

标签: c++ windows winapi

如果我在驱动器上有路径,如何检索该驱动器的GUID号?

我需要它来读这个键:

HK_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\BitBucket\Volume

enter image description here

1 个答案:

答案 0 :(得分:2)

您可以使用winapi GetVolumeNameForVolumeMountPoint函数检索具有该驱动器号的卷的GUID。

#include "stdafx.h"
#include <windows.h>

int _tmain(int argc, _TCHAR* argv[])
{
    TCHAR volumeName[MAX_PATH + 1] = { 0 };

    GetVolumeNameForVolumeMountPoint("C:\\", volumeName, MAX_PATH);
    _tprintf(_T("VolumeName: %s\n"), volumeName);
}

这是输出:

VolumeName: \\?\Volume{f3b89248-8457-1ae3-9f8c-806e6f6b6923}\

从这里你可以使用子字符串或正则表达式来剪切包含GUID的部分。