init
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
//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
|
||||
}
|
||||
Reference in New Issue
Block a user