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

Mary-Kate Olsen
リリース: 2024-11-27 16:02:10
オリジナル
786 人が閲覧しました

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

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