首頁  >  文章  >  後端開發  >  如何使用 Go 取得 Windows 磁碟機的總大小?

如何使用 Go 取得 Windows 磁碟機的總大小?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-27 16:02:10791瀏覽

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

使用 Go 在 Windows 中查詢磁碟機總大小

取得磁碟機總大小對於各種應用程式至關重要。本文示範如何使用 Go 中的標準 Windows API 呼叫來檢索此資訊。

如前所述,可以使用 kernel32.dll 中的 GetDiskFreeSpaceExW() 函數。它採用目錄路徑作為輸入,並提供三個輸出參數:

  • lpFreeBytesAvailableToCaller:呼叫者可存取的可用位元組
  • lpTotalNumberOfBytes:總磁碟大小
  • lpTotalNumberOfBytes:總磁碟大小
lpTotalNumberOfFreeBytes:未使用上的空間disk

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn