Windows 上の Go でドライブの合計サイズを取得する
これまでの作業で、ドライブ上で利用可能な空き容量を正常に特定できました。この知識に基づいて、「C:」などの特定のドライブの合計サイズを取得しようとします。
この要求に対処するには、kernel32.dll の GetDiskFreeSpaceExW() Windows API 関数を使用できます。雇用されている。この関数には in パラメータ (ドライブ パス) が必要で、次の 3 つの out パラメータが提供されます:
取得したい情報を変数に割り当てることで、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 中国語 Web サイトの他の関連記事を参照してください。