我必须编写一个函数来返回所有驱动器号,其中驱动器是 U 盘。问题是 U 盘的分区方式可能是 Windows 将 2 个或更多驱动器分配给单个 U 盘,其中只有一个是 USB 大容量存储设备(这是我想要的字母)。所以像
DriveInfo.GetDrives()
然后用 device.DriveType == DriveType.Removable
过滤不起作用,因为这会返回所有可移动的驱动器。
我一直试图在 WMI 中做到这一点,但到目前为止我还没有找到正确的答案。类似问题的最常见答案是通过几个像这样的类(source):
Win32_DiskDrive-> Win32_DiskDriveToDiskPartition -> Win32_DiskPartition -> Win32_LogicalDiskToPartition -> Win32_LogicalDisk
但这也会返回 U 盘的所有驱动器。我的想法是使用 Win32_USBHub
删除所有不是大容量存储设备的驱动器。但我不知道将它添加到链中的何处,或者这是否可能?有什么帮助吗?