Go を使用して Windows のドライブの合計サイズを取得するには、標準の Windows API 呼び出しを詳しく調べます。具体的には、kernel32.dll の GetDiskFreeSpaceExW() 関数です。この関数は以前は空き領域を取得するために使用されていましたが、ドライブの合計サイズへのアクセスも提供します。
GetDiskFreeSpaceExW() にはいくつかのパラメータがあります:
Go コードでは、次のようにこの解決策を実装できます。
package main import ( "fmt" "syscall" "unsafe" ) func main() { kernelDLL, err := syscall.LoadDLL("kernel32.dll") if err != nil { fmt.Println("Failed to load kernel32.dll:", err) return } GetDiskFreeSpaceExW, err := kernelDLL.FindProc("GetDiskFreeSpaceExW") if err != nil { fmt.Println("Failed to find GetDiskFreeSpaceExW proc:", err) return } var free, total, avail int64 path := "c:\" r1, r2, _ := GetDiskFreeSpaceExW.Call( uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(path))), uintptr(unsafe.Pointer(&free)), uintptr(unsafe.Pointer(&total)), uintptr(unsafe.Pointer(&avail)), ) fmt.Println("Free:", free, "Total:", total, "Available:", avail) if r1 == 1 && r2 == 0 { fmt.Println("Success.") } else { fmt.Println("Failed:", syscall.Errno(r1)) } }
このコードは、指定されたドライブの合計領域と空き領域の両方を表示する、目的の出力を提供します。
以上がGo を使用して Windows ドライブの合計サイズを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。