# scan-file **Repository Path**: solidify-the-foundation/scan-file ## Basic Information - **Project Name**: scan-file - **Description**: 扫描文件大小情况 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: initial-commit - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-25 - **Last Updated**: 2026-06-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # scan-file 一个参考 [gdu](https://github.com/dundee/gdu) 思路实现的 Go 磁盘用量分析 CLI 学习项目。 当前阶段是最小可运行版本:递归扫描目录,统计文件大小,并按大小降序打印根目录下的直接子项。 ## 功能 - 默认扫描当前目录 - 支持指定要扫描的目录 - 递归统计目录总大小 - 按大小降序展示直接子项 - 使用 `B`、`KiB`、`MiB`、`GiB` 等单位格式化输出 ## 使用方法 ### 扫描当前目录 ```bash go run . ``` ### 扫描指定目录 ```bash go run . /path/to/dir ``` 例如: ```bash go run . /Users/liuk/tests ``` 输出示例: ```text Total: 12.4 GiB /Users/liuk/tests 8.1 GiB big-folder 2.0 GiB images 1.3 GiB archive.zip ``` ## 构建 ```bash go build -o scan-file . ``` 构建后运行: ```bash ./scan-file /path/to/dir ``` ## 验证 ```bash go test ./... ``` 当前阶段暂时还没有测试文件,因此该命令主要用于确认项目可以正常编译。 ## 注意事项 当前版本统计的是 Go `os.FileInfo.Size()` 返回的文件大小,也就是 apparent size。它不一定等同于 `du` 默认显示的磁盘块占用大小。 后续阶段会继续加入: - 单元测试 - 忽略规则,例如跳过 `.git`、`node_modules` - 更完善的错误处理 - 并发扫描 - TUI 交互界面