2025-06-17 23:25:02 +08:00
|
|
|
//go:build !windows
|
|
|
|
|
|
|
|
package local
|
|
|
|
|
|
|
|
import (
|
|
|
|
"io/fs"
|
|
|
|
"strings"
|
2025-09-19 11:59:11 +08:00
|
|
|
"syscall"
|
|
|
|
|
|
|
|
"github.com/OpenListTeam/OpenList/v4/internal/model"
|
2025-06-17 23:25:02 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
func isHidden(f fs.FileInfo, _ string) bool {
|
|
|
|
return strings.HasPrefix(f.Name(), ".")
|
|
|
|
}
|
2025-09-19 11:59:11 +08:00
|
|
|
|
|
|
|
func getDiskUsage(path string) (model.DiskUsage, error) {
|
|
|
|
var stat syscall.Statfs_t
|
|
|
|
err := syscall.Statfs(path, &stat)
|
|
|
|
if err != nil {
|
|
|
|
return model.DiskUsage{}, err
|
|
|
|
}
|
|
|
|
total := stat.Blocks * uint64(stat.Bsize)
|
|
|
|
free := stat.Bfree * uint64(stat.Bsize)
|
|
|
|
return model.DiskUsage{
|
|
|
|
TotalSpace: total,
|
|
|
|
FreeSpace: free,
|
|
|
|
}, nil
|
|
|
|
}
|