你如何在golang上获得Windows上的硬盘数量(不是分区!)?

时间:2018-04-25 15:15:49

标签: windows go disk-partitioning

此问题与How can I get a listing of all drives on Windows using golang?

不同

我知道如何获取硬盘的分区,但硬盘的数量呢? 我尝试使用diskpark但不喜欢它 enter image description here

是否有一些原生方式可以实施?

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

它有效。 大家好。

这里的代码是。

Gopkg.toml:

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

和go代码:

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))
}

0 个答案:

没有答案