在未定义分区时,使用C#或WMI获取USB驱动器容量

在未定义分区时,使用C#或WMI获取USB驱动器容量,c#,wmi,disk,diskspace,C#,Wmi,Disk,Diskspace,我已经编写了一个C#程序,从标准构建源填充一个或多个可引导USB笔驱动器。用户根据驱动器号选择目标驱动器 在启动之前,我在代码中检查每个目标USB设备上是否有足够的容量,但如果设备上没有定义分区,我无法解决如何执行此操作 我可以看到如何使用WMI根据驱动器号查找物理磁盘,但这依赖于“Win32_DiskDriveToDiskPartition”关系,当没有分区时,该关系将不起作用 有什么想法吗?如果没有驱动器号,您如何定位USB设备?未分区的设备不应映射到驱动器号。@托默在我的Windows 7

我已经编写了一个C#程序,从标准构建源填充一个或多个可引导USB笔驱动器。用户根据驱动器号选择目标驱动器

在启动之前,我在代码中检查每个目标USB设备上是否有足够的容量,但如果设备上没有定义分区,我无法解决如何执行此操作

我可以看到如何使用WMI根据驱动器号查找物理磁盘,但这依赖于“Win32_DiskDriveToDiskPartition”关系,当没有分区时,该关系将不起作用


有什么想法吗?

如果没有驱动器号,您如何定位USB设备?未分区的设备不应映射到驱动器号。@托默在我的Windows 7计算机上有一个没有分区的SanDisk USB设备的示例:DISKPART>list vol Volume\#\#\Ltr Label Fs Type Size Status Info-------------------------Volume5 F Removable 0 B UnusableId是否尝试查询
Win32\u DiskDrive
?它有一个size属性。很抱歉,很难让它可读,但我相信你能解决它:)@Tomer,是的,问题是如何从驱动器号获取Win32_DiskDrive的正确实例,因为它没有提到驱动器号?如果没有驱动器号,如何定位USB设备?未分区的设备不应映射到驱动器号。@托默在我的Windows 7计算机上有一个没有分区的SanDisk USB设备的示例:DISKPART>list vol Volume\#\#\Ltr Label Fs Type Size Status Info-------------------------Volume5 F Removable 0 B UnusableId是否尝试查询
Win32\u DiskDrive
?它有一个size属性。很抱歉,很难让它可读,但我相信你能解决:)@Tomer,是的,问题是如何从驱动器号获取到Win32_DiskDrive的正确实例,因为它没有提到驱动器号?