有谁知道以编程方式找出哪个物理磁盘包含给定分区的方法?手动,我可以使用 Start->Run->diskmgmt.msc 找到此信息,在那里我可以看到(在我的计算机上)分区 C: 和 D: 在磁盘 1 上,E: & F: 在磁盘 0 上。
如果文件位于不同的物理磁盘上,这是为了通过并行执行某些文件处理操作来优化它们。
有谁知道以编程方式找出哪个物理磁盘包含给定分区的方法?手动,我可以使用 Start->Run->diskmgmt.msc 找到此信息,在那里我可以看到(在我的计算机上)分区 C: 和 D: 在磁盘 1 上,E: & F: 在磁盘 0 上。
如果文件位于不同的物理磁盘上,这是为了通过并行执行某些文件处理操作来优化它们。
您可以通过查询Win32_DiskDrive类使用 WMI 从 System.Management 命名空间获取此信息。
这是.NET 中有关 WMI 的基本信息。
除了 Arul 的回答之外,这里还有一个链接,它显示了如何从 VBS 脚本中使用 WMI 获取磁盘<->分区关联:WMI 任务:磁盘和文件系统 -> 请参阅页面上的最后一个示例。
编辑:更好的是,这是一篇关于使用 C# 的 WMI 的好文章,它恰好也描述了获取\\\\.\\PHYSICALDRIVE0
包含逻辑磁盘的磁盘驱动器(例如)所需的 WMI 类之间的确切关系(例如C:
)
请参阅 HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
wmic path CIM_BasedOn get * > wmic-path-CIM_BasedOn-get.txt
wmic path CIM_DiskPartition get * > wmic-path-CIM_DiskPartition-get.txt
wmic path CIM_StorageExtent get * > wmic-path-CIM_StorageExtent-get.txt
请参阅类:CIM_BasedOn - 非枚举隐藏分区、CIM_DiskPartition -all,但看不到磁盘标签、CIM_StorageExtent - GUID、标签、分区(也隐藏)
您确定该分区仅与一个磁盘关联吗?它可以跨多个物理磁盘进行条带化/跨越/等。