首页 > 解决方案 > 您如何在 golang 中获取 Windows 上的硬盘数量(不是分区!)?

问题描述

这个问题不同于如何使用 golang 获取 Windows 上所有驱动器的列表?

我知道如何获取硬盘的分区,但是硬盘的数量呢?我尝试使用diskpark但不喜欢它。
在此处输入图像描述

有一些原生的方式来实现吗?

@Dippo 说:我想我找到了一个包:https ://github.com/StackExchange/wmi

它有效。谢谢大家。

代码在这里。

Gopkg.toml:

required = ["github.com/stackexchange/wmi"]

和去代码:

func getDiskDrivers() uint8 {
    type Win32_DiskDrive struct {
        Caption      string
        Name         string
        DeviceID     string
        Model        string
        Index        int
        Partitions   int
        Size         int
        PNPDeviceID  string
        Status       string
        SerialNumber string
        Manufacturer string
        MediaType    string
        Description  string
        SystemName   string
    }

    var dst []Win32_DiskDrive

    query := wmi.CreateQuery(&dst, "")
    if err := wmi.Query(query, &dst); err != nil {
        log.Println(err.Error())
        return 0
    }

    //for key, value := range dst {
    //  log.Println(fmt.Sprintf(`Disk%d: %v`, key+1, value))
    //}

    return uint8(len(dst))
}

标签: windowsgodisk-partitioning

解决方案


推荐阅读