16 lines
358 B
Go
16 lines
358 B
Go
//go:build !windows
|
|
|
|
package main
|
|
|
|
import "syscall"
|
|
|
|
// 返回指定路径所在磁盘的剩余和总容量(字节)
|
|
func diskSpace(path string) (free, total uint64, err error) {
|
|
var st syscall.Statfs_t
|
|
if err = syscall.Statfs(path, &st); err != nil {
|
|
return 0, 0, err
|
|
}
|
|
bsize := uint64(st.Bsize)
|
|
return st.Bavail * bsize, st.Blocks * bsize, nil
|
|
}
|