Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TreeSize Go — 磁盘空间分析

基于 Go + Wails3 + React(TS) + Ant Design 的 DuckDisk 风格磁盘空间分析工具。 把所有数据整合进一张「信息密集型」树状表格:每一行同时展示逻辑大小 (Size)、磁盘实际占用 (Allocated Space)、占父目录百分比 (Parent %)、递归项目数 (Item Counts),并附带文件类型统计全球最大文件 (Top-K),可快速排序对比、定位空间占用大户。

截图

主界面

类型统计与边栏

文件类型分组环形图

📬 联系我们

联系我们

Tip

💬 使用中遇到问题、或有新的功能想法?欢迎联系我们,你的反馈能让 TreeSize Go 变得更好!

功能

  • 树形表格主视图(antd Table,懒加载展开)
    • 列:文件夹/文件名(带扩展名图标)、大小、磁盘占用、父目录 %、项目数
    • 每行内联微柱状图;行内双击打开所在目录、右键菜单(打开/在资源管理器显示/复制路径)
  • 类型统计:侧栏按扩展名聚合占用(全局或当前选中目录)
  • 最大文件:扫描期间流式维护的 Top-K 文件列表(点击在资源管理器中定位)
  • 全局图表:Top-12 目录占比条 + 类型分组环形图(SVG)
  • 设置中心(可持久化配置,存于用户配置目录)
    • 单位进制 1024/1000、小数位、行密度、默认排序
    • 列显示开关;跳过目录名;并发扫描数;精确占用 vs 簇估算;项目数口径;Top-K 数量;主题(暗/亮/跟随系统)
  • 跨平台:Windows / macOS / Linux(分配大小:Windows 用 GetFileInformationByHandleEx(FileStandardInfo),Unix 用 st_blocks×512;簇大小按平台获取)

构建

前置:Go 1.25+、Node.js 20+、Wails3 CLI(go install github.com/wailsapp/wails/v3/cmd/wails3@latest,CLI 在 $(go env GOPATH)/bin)。

# 生产构建(产物在 bin/treesize-go.exe)
PATH="$PATH:$(go env GOPATH)/bin" && wails3 build

# 开发模式(代码热重载)
wails3 dev

GUI 完整链接需在对应平台上执行(macOS 在 macOS 上构建、Linux 在 Linux 上或对应的 Docker 交叉工具链)。

命令行无头扫描(调试/自动化)

应用支持 -scan <路径> 无头模式:按当前配置扫描一次,输出 JSON 汇总(根节点完整树、类型聚合、Top-K)后退出,不启动窗口。

bin/treesize-go -scan "C:\Users" > result.json

项目结构

  • main.go — 应用入口;-scan 无头模式入口
  • scanner.go — 并发扫描器:固定 worker 池 + 任务队列(阶段一并发枚举,阶段二自底向上聚合),流式维护 Top-K 与扩展名聚合
  • scan_service.go / config_service.go / topfiles.go — Wails3 服务与配置持久化
  • disk_alloc_{windows,unix,common}.go — 跨平台磁盘占用统计
  • shell_service_{windows,darwin,linux}.go — 驱动器枚举与资源管理器集成
  • frontend/ — React + TS + Antd 前端

About

treesize-go

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages