github.com/decred/dcrlnd@v0.7.6/healthcheck/diskcheck_windows.go (about) 1 package healthcheck 2 3 import "golang.org/x/sys/windows" 4 5 // AvailableDiskSpaceRatio returns ratio of available disk space to total 6 // capacity for windows. 7 func AvailableDiskSpaceRatio(path string) (float64, error) { 8 var free, total, avail uint64 9 10 pathPtr, err := windows.UTF16PtrFromString(path) 11 if err != nil { 12 return 0, err 13 } 14 err = windows.GetDiskFreeSpaceEx(pathPtr, &free, &total, &avail) 15 16 return float64(avail) / float64(total), nil 17 } 18 19 // AvailableDiskSpace returns the available disk space in bytes of the given 20 // file system for windows. 21 func AvailableDiskSpace(path string) (uint64, error) { 22 var free, total, avail uint64 23 24 pathPtr, err := windows.UTF16PtrFromString(path) 25 if err != nil { 26 return 0, err 27 } 28 err = windows.GetDiskFreeSpaceEx(pathPtr, &free, &total, &avail) 29 30 return avail, nil 31 }