Heim > Artikel > Backend-Entwicklung > Wie kann ich mit Go die Gesamtgröße eines Windows-Laufwerks ermitteln?
Um die Gesamtgröße eines Laufwerks in Windows mit Go abzurufen, vertiefen Sie sich in den Standard-Windows-API-Aufruf. insbesondere die Funktion GetDiskFreeSpaceExW() von kernel32.dll. Während diese Funktion zuvor verwendet wurde, um freien Speicherplatz zu erhalten, bietet sie auch Zugriff auf die Gesamtgröße des Laufwerks.
GetDiskFreeSpaceExW() hat mehrere Parameter:
In Ihrem Go-Code können Sie diese Lösung wie folgt implementieren:
package main import ( "fmt" "syscall" "unsafe" ) func main() { kernelDLL, err := syscall.LoadDLL("kernel32.dll") if err != nil { fmt.Println("Failed to load kernel32.dll:", err) return } GetDiskFreeSpaceExW, err := kernelDLL.FindProc("GetDiskFreeSpaceExW") if err != nil { fmt.Println("Failed to find GetDiskFreeSpaceExW proc:", err) return } var free, total, avail int64 path := "c:\" r1, r2, _ := GetDiskFreeSpaceExW.Call( uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(path))), uintptr(unsafe.Pointer(&free)), uintptr(unsafe.Pointer(&total)), uintptr(unsafe.Pointer(&avail)), ) fmt.Println("Free:", free, "Total:", total, "Available:", avail) if r1 == 1 && r2 == 0 { fmt.Println("Success.") } else { fmt.Println("Failed:", syscall.Errno(r1)) } }
Dieser Code liefert die gewünschte Ausgabe und zeigt sowohl den gesamten als auch den freien Speicherplatz auf dem angegebenen Laufwerk an.
Das obige ist der detaillierte Inhalt vonWie kann ich mit Go die Gesamtgröße eines Windows-Laufwerks ermitteln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!