【问题标题】:C# - Getting the list or number of physical drives(not logical drives)C# - 获取物理驱动器的列表或数量(不是逻辑驱动器)
【发布时间】:2017-02-13 14:14:02
【问题描述】:

我通过访问路径“\\.\PhysicalDrive0”实现了逐位读取和分析物理磁盘的程序。

我希望用户在物理磁盘列表中选择物理磁盘。

我知道如果我更改路径的最后一个数字,我可以读取另一个物理磁盘, 但是我不知道如何获取物理磁盘列表或物理磁盘的数量。

如何获取物理磁盘编号列表?

我必须使用哪个功能?

【问题讨论】:

    标签: c# winapi


    【解决方案1】:

    使用 WMI,例如:

    using System.Management;
    
    List<String> result;
    var query = new WqlObjectQuery("SELECT * FROM Win32_DiskDrive");
    using (var searcher = new ManagementObjectSearcher(query))
    {
        result = searcher.Get()
                         .OfType<ManagementObject>()
                         .Select(o => o.Properties["DeviceID"].Value.ToString())
                         .ToList();
    }
    

    这会为您提供系统中物理驱动器的设备 ID 列表。

    【讨论】:

    • 输出4个硬盘的同名硬盘。
    • 我需要每个物理磁盘的数量。
    • 我已经更新了我的答案——尽管它只是作为示例代码提供的。如果这仍然不是您想要的,请查看其他可用的属性。
    • 如果有效,请标记他的回复,以便帮助其他人。
    • 不,它不起作用。在具有配置为 RAID 1 的 2 个系统驱动器和配置为 RAID 10 的 8 个数据磁盘的 PC 上,此查询返回 2 个驱动器。
    猜你喜欢
    • 2010-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多