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 中国語 Web サイトの他の関連記事を参照してください。