windows - 您如何在 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))
}
解决方案
推荐阅读
- sql - listagg 结果中的空格
- sql - MS Access 查询,如何创建仅显示文件更改位置的最近日期的文件库存查询
- html - 将登录面板移动到屏幕中心
- javascript - Promise 链接到可能已解决的 Promise
- testing - 是否可以让 GitHub 自述文件图像跟随重定向?
- visual-studio-code - vscode devcontainer定义中的自定义键绑定
- reactjs - 如何通过 D3 从 ReactJS 中删除之前的实例?
- c#-4.0 - 与 CMQC.MQSO_SET_CORREL_ID 等效的 IBM MQ XMS 选项是什么
- c++ - OpenGL:有没有办法只保留源和目标之间的最大值?
- facebook - 如何为非 App-Scoped User ID 建立永久且公开的 Facebook 个人资料照片 URL?