【问题标题】:How to get drive name from drive letter?如何从驱动器号中获取驱动器名称?
【发布时间】:2017-10-11 23:01:53
【问题描述】:

我已经搜索过互联网但找不到答案,如何从 Windows 的 c++ 上的驱动器号获取驱动器名称?我的意思是如果我说 G:\ 它必须给我笔式驱动器的名称。例如:可移动磁盘。

【问题讨论】:

标签: c++ windows winapi


【解决方案1】:

就像调用GetVolumeInformation API function 一样简单。您将驱动器号作为路径名(例如G:\)传递,该函数会填充包含卷名的缓冲区(以及其他信息,如果您对此感兴趣) .

这是检索 G:\ 驱动器的卷名所需的代码。卷名放入szVolumeName缓冲区:

WCHAR szVolumeName[MAX_PATH];
BOOL bSucceeded = GetVolumeInformationW(L"G:\\",
                                        szVolumeName,
                                        MAX_PATH,
                                        NULL,
                                        NULL,
                                        NULL,
                                        NULL,
                                        0);

如果您在调用函数时需要任何其他信息,例如卷的 DOS 序列号、文件系统名称等,则可以将参数从 NULL 更改为适当的缓冲区。

【讨论】:

  • 如何获取显示在 Windows 资源管理器中的驱动器名称而不是卷名称?例如,在资源管理器中显示为“DVD RW Drive”的驱动器的 szVolumeName 为“Windows”,显示为“Garmin eTrex 30”的驱动器的 szVolumeName 为“GARMIN”。谢谢!
  • 我在codetwee.blogspot.com/2020/05/…找到了实际例子
猜你喜欢
  • 2011-11-05
  • 1970-01-01
  • 2020-10-30
  • 1970-01-01
  • 2022-11-01
  • 2013-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多