Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
您如何获得golang Windows上的硬盘(而不是分区!)数量?_Windows_Go_Disk Partitioning - Fatal编程技术网

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

您如何获得golang Windows上的硬盘(而不是分区!)数量?,windows,go,disk-partitioning,Windows,Go,Disk Partitioning,这个问题不同于 我知道如何得到硬盘的分区,但是硬盘的数量呢? 我试过使用diskpark,但不喜欢它。 是否有一些本地的go方法可以实现 @迪普说:我想我找到了一个包裹: 它是有效的。 谢谢 代码在这里 Gopkg.toml: required=[“github.com/stackexchange/wmi”] 以及go代码: func getDiskDrivers() uint8 { type Win32_DiskDrive struct { Caption

这个问题不同于

我知道如何得到硬盘的分区,但是硬盘的数量呢? 我试过使用
diskpark
,但不喜欢它。

是否有一些本地的go方法可以实现

@迪普说:我想我找到了一个包裹:

它是有效的。 谢谢

代码在这里

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

我假设您只想知道Windows的情况,并且包的使用不是问题?在Windows中,我们可以使用获取设备(磁盘)号。如何/可能在go separate中使用此功能question@Dippo是的。我试图找到一些golang的软件包,但不起作用。@Zander Wong我想我找到了一个软件包:@Zander Wong你是对的,partitios仍然作为驱动器可见,我错了,因为我没有任何分区。但是我在这个网站()上找到了一个可以解决你问题的查询。