在 Windows 上的 Go 中检索驱动器的总大小
在之前的工作中,您成功确定了驱动器上的可用空间。基于这些知识,您现在寻求检索特定驱动器的总大小,例如“C:”。
要解决此请求,可以使用 kernel32.dll 中的 GetDiskFreeSpaceExW() Windows API 函数:受雇。此函数需要一个输入参数(驱动器路径)并提供三个输出参数:
通过为您希望获取的信息分配变量,您可以使用 GetDiskFreeSpaceExW() 函数。下面是一个示例实现:
import ( "syscall" "unsafe" "fmt" ) func main() { kernelDLL, err := syscall.LoadDLL("kernel32.dll") if err != nil { panic(err) } getDiskFreeSpaceExW, err := kernelDLL.FindProc("GetDiskFreeSpaceExW") if err != nil { panic(err) } var free, total, avail int64 path := "c:\" r1, r2, lastErr := getDiskFreeSpaceExW.Call( uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(path))), uintptr(unsafe.Pointer(&free)), uintptr(unsafe.Pointer(&total)), uintptr(unsafe.Pointer(&avail)), ) fmt.Println(r1, r2, lastErr) fmt.Println("Free:", free, "Total:", total, "Available:", avail) }
运行此代码会产生如下输出:
1 0 Success. Free: 16795295744 Total: 145545281536 Available: 16795295744
此信息提供了磁盘使用情况和容量的全面视图。
以上是如何在 Go 中获取 Windows 驱动器的总大小?的详细内容。更多信息请关注PHP中文网其他相关文章!