【发布时间】:2011-02-25 14:48:57
【问题描述】:
我正在尝试获取特定 USB 大容量存储设备的挂载点 (linux/osx) 或磁盘驱动器 (windows)。
我可以使用 libusb 来确定是否插入了正确的设备,但我如何确定它的安装位置?
我使用的是 C++,但我认为 C 代码也可以正常工作。跨平台代码会更好。
【问题讨论】:
我正在尝试获取特定 USB 大容量存储设备的挂载点 (linux/osx) 或磁盘驱动器 (windows)。
我可以使用 libusb 来确定是否插入了正确的设备,但我如何确定它的安装位置?
我使用的是 C++,但我认为 C 代码也可以正常工作。跨平台代码会更好。
【问题讨论】:
C 标准库没有为此提供任何便利,因此不可能实现真正的跨平台兼容性。在 Windows 上,您可以使用 GetLogicalDrives 和 GetLogicalDriveType 的组合,如 here 所述。您可以使用 GetVolumeInformationByHandleW 将该信息映射到您的设备。
【讨论】: