Этот вопрос отличается от Как получить список всех дисков в Windows, используя golang?
Я знаю, как получить разделы жесткого диска, но как насчет номеров жесткого диска?
Я пытался использовать diskpark
, но мне не понравилось.
Есть ли какой-нибудь нативный способ реализации?
@ Диппо сказал: я думаю, что нашел пакет: 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))
}