Heim > Backend-Entwicklung > Golang > Wie erhalte ich mit Go die Gesamtgröße eines Windows-Laufwerks?

Wie erhalte ich mit Go die Gesamtgröße eines Windows-Laufwerks?

Mary-Kate Olsen
Freigeben: 2024-11-27 16:02:10
Original
859 Leute haben es durchsucht

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

Abfragen der Gesamtgröße eines Laufwerks in Windows mit Go

Das Ermitteln der Gesamtgröße eines Laufwerks ist für verschiedene Anwendungen von entscheidender Bedeutung. In diesem Artikel wird gezeigt, wie diese Informationen mithilfe des Standard-Windows-API-Aufrufs in Go abgerufen werden.

Wie bereits erwähnt, kann die Funktion GetDiskFreeSpaceExW() von kernel32.dll verwendet werden. Es verwendet einen Verzeichnispfad als Eingabe und stellt drei Ausgabeparameter bereit:

  • lpFreeBytesAvailableToCaller: Freie Bytes, auf die der Aufrufer zugreifen kann
  • lpTotalNumberOfBytes: Gesamtdatenträgergröße
  • lpTotalNumberOfFreeBytes: Nicht verwendet Platz auf der Festplatte

Um diese Funktion zu nutzen, weisen Sie Variablen für die gewünschte Ausgabe zu:

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)),
)
Nach dem Login kopieren

Beispielausgabe:

Free: 16795295744 Total: 145545281536 Available: 16795295744
Nach dem Login kopieren

Mit dieser Technik können Sie genau bestimmen die Gesamtgröße eines beliebigen angegebenen Laufwerks, das die Windows-API verwendet.

Das obige ist der detaillierte Inhalt vonWie erhalte ich mit Go die Gesamtgröße eines Windows-Laufwerks?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage