ホームページ >バックエンド開発 >Golang >Go を使用して Windows ドライブの合計サイズを取得する方法

Go を使用して Windows ドライブの合計サイズを取得する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-27 16:02:10857ブラウズ

How to Get a Windows Drive's Total Size Using Go?

Go を使用した Windows でのドライブの合計サイズのクエリ

ドライブの合計サイズの取得は、さまざまなアプリケーションにとって重要です。この記事では、Go の標準 Windows API 呼び出しを使用してこの情報を取得する方法を説明します。

前述したように、kernel32.dll の GetDiskFreeSpaceExW() 関数を使用できます。ディレクトリ パスを入力として受け取り、次の 3 つの出力パラメータを提供します。

  • lpFreeBytesAvailableToCaller: 呼び出し元がアクセスできる空きバイト数
  • lpTotalNumberOfBytes: 合計ディスク サイズ
  • lpTotalNumberOfFreeBytes: 未使用上のスペースdisc

この関数を利用するには、目的の出力に変数を割り当てます:

import "syscall"

kernelDLL := syscall.MustLoadDLL("kernel32.dll")
GetDiskFreeSpaceExW := kernelDLL.MustFindProc("GetDiskFreeSpaceExW")

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)),
)

出力例:

Free: 16795295744 Total: 145545281536 Available: 16795295744

この手法により、正確に決定することができます。 Windows API を使用して指定されたドライブの合計サイズ。

以上がGo を使用して Windows ドライブの合計サイズを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。