Go を使用して Windows ドライブの合計サイズを計算するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-21 08:02:10
オリジナル
358 人が閲覧しました

How to Calculate the Total Size of a Windows Drive Using Go?

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート