//go:build windows package main import ( "path/filepath" "golang.org/x/sys/windows" ) // 返回指定路径所在磁盘的剩余和总容量(字节) func diskSpace(path string) (free, total uint64, err error) { // GetDiskFreeSpaceEx 需要绝对路径 abs, err := filepath.Abs(path) if err != nil { return 0, 0, err } p, err := windows.UTF16PtrFromString(abs) if err != nil { return 0, 0, err } var freeToCaller, totalBytes, totalFree uint64 if err = windows.GetDiskFreeSpaceEx(p, &freeToCaller, &totalBytes, &totalFree); err != nil { return 0, 0, err } return freeToCaller, totalBytes, nil }