Heim >Backend-Entwicklung >Golang >Wie erhalte ich die Gesamtgröße eines Windows-Laufwerks in Go?
Abrufen der Gesamtgröße eines Laufwerks in Go unter Windows
In früheren Versuchen haben Sie erfolgreich den verfügbaren freien Speicherplatz auf einem Laufwerk ermittelt. Aufbauend auf diesem Wissen versuchen Sie nun, die Gesamtgröße eines bestimmten Laufwerks wie „C:“ abzurufen.
Um diese Anfrage zu beantworten, kann die Windows-API-Funktion GetDiskFreeSpaceExW() aus der kernel32.dll verwendet werden beschäftigt. Diese Funktion erfordert einen In-Parameter (den Laufwerkspfad) und stellt drei Out-Parameter bereit:
Durch die Zuweisung von Variablen für die Informationen, die Sie erhalten möchten, können Sie die nutzen GetDiskFreeSpaceExW()-Funktion. Hier ist eine Beispielimplementierung:
import ( "syscall" "unsafe" "fmt" ) func main() { kernelDLL, err := syscall.LoadDLL("kernel32.dll") if err != nil { panic(err) } getDiskFreeSpaceExW, err := kernelDLL.FindProc("GetDiskFreeSpaceExW") if err != nil { panic(err) } 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)), ) fmt.Println(r1, r2, lastErr) fmt.Println("Free:", free, "Total:", total, "Available:", avail) }
Das Ausführen dieses Codes führt zu einer Ausgabe wie:
1 0 Success. Free: 16795295744 Total: 145545281536 Available: 16795295744
Diese Informationen bieten einen umfassenden Überblick über die Festplattennutzung und -kapazität.
Das obige ist der detaillierte Inhalt vonWie erhalte ich die Gesamtgröße eines Windows-Laufwerks in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!