計算Windows 上Go 中的磁碟機總大小
要取得Windows 上Go 中特定磁碟機的總大小,要使用的標準Windows API 呼叫是來自kernel32.dll 的GetDiskFreeSpaceExW()。此函數會擷取呼叫者可用的可用空間,以及磁碟上的總位元組數和可用位元組總數。
透過為所需的每個資訊提供指針,GetDiskFreeSpaceExW() 函數可用於擷取磁碟機的總大小。
以下是示範其用法的範例程式碼:
import ( "syscall" "unsafe" "fmt" ) func main() { kernelDLL, _ := syscall.LoadDLL("kernel32.dll") GetDiskFreeSpaceExW, _ := kernelDLL.FindProc("GetDiskFreeSpaceExW") var free int64 var total int64 var 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中文網其他相關文章!