Files
Yunling Zhang 78673558c8 feat(core): Go 模块与账号、认证、用量基础包
- account: accounts.json 原子读写、常量时间口令校验、增删改查与用户名校验
- auth: HMAC 会话签名 + 管理员 bcrypt 凭据初始化
- randstr: 口令生成;usage: 目录用量统计
- 单测覆盖口令对错、账号禁用、只读、路径逃逸、持久化与 0600 权限
2026-09-28 16:52:33 +08:00

29 lines
646 B
Go

// Package usage 统计账号根目录的磁盘占用。
package usage
import (
"io/fs"
"path/filepath"
)
// Dir 遍历 root,返回常规文件的总字节数与文件数。读不到的条目直接跳过。
func Dir(root string) (bytes int64, files int64, err error) {
err = filepath.WalkDir(root, func(_ string, d fs.DirEntry, walkErr error) error {
if walkErr != nil {
// 权限或竞态导致的读取失败不影响整体统计。
return nil
}
if d.IsDir() {
return nil
}
info, infoErr := d.Info()
if infoErr != nil {
return nil
}
bytes += info.Size()
files++
return nil
})
return bytes, files, err
}