sk-matrix-project/app/wails/lib/system/disk.go

57 lines
1.1 KiB
Go

package system
import (
"github.com/shirou/gopsutil/disk"
"os"
"path/filepath"
"time"
)
const TypeDisk = "disk"
func GetDiskPartitions() []disk.PartitionStat {
partitions, _ := disk.Partitions(true)
return partitions
}
func GetDiskUsage(diskPath string) *disk.UsageStat {
usageStat, _ := disk.Usage(diskPath)
return usageStat
}
func GetIOCounters() map[string]disk.IOCountersStat {
info, _ := disk.IOCounters()
return info
}
type FileEntry struct {
Path string
Name string
IsDir bool
IsSymlink bool
ModTime time.Time
Size int64
}
func ScanDir(path string) ([]*FileEntry, error) {
entries, err := os.ReadDir(path)
data := make([]*FileEntry, 0, len(entries))
for _, entry := range entries {
info, _ := entry.Info()
_path := filepath.Join(path, entry.Name())
info.Size()
info.ModTime()
data = append(data, &FileEntry{
Path: _path,
Name: entry.Name(),
IsDir: entry.IsDir(),
IsSymlink: entry.Type() == os.ModeSymlink,
Size: info.Size(),
ModTime: info.ModTime(),
})
}
return data, err
}