在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中文網其他相關文章!