Skip to content

tigerStl/TigerCClean

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TigerCleaner

基于 .NET 8、Avalonia 与 MVVM 的 Windows 磁盘清理工具(TigerCleaner)。以 JSON 规则驱动扫描与删除,内置安全路径校验与 Serilog 日志,扫描历史保存在本地 SQLite。

解决方案结构

项目 说明
src/TigerCleaner.Core 模型、规则引擎、扫描/清理服务、安全守卫、SQLite 历史
src/TigerCleaner.UI Avalonia 图形界面(仪表盘、扫描结果、设置、清理历史)
src/TigerCleaner.CLI 命令行:scancleanclean --dry-runlist-rules
src/TigerCleaner.Mcp Model Context Protocol stdio 服务器(开发/IDE 用):规则列表、只读扫描、数据路径查询;不提供删除类工具

构建与运行

dotnet build TigerCleaner.sln -c Release
dotnet run --project src/TigerCleaner.UI/TigerCleaner.UI.csproj
dotnet run --project src/TigerCleaner.CLI/TigerCleaner.CLI.csproj -- scan
dotnet run --project src/TigerCleaner.Mcp/TigerCleaner.Mcp.csproj

MCP 开发服务器(stdio)

TigerCleaner.Mcp 使用官方 NuGet 包 ModelContextProtocol,通过标准输入输出与 Cursor 等客户端通信。工具仅包含查询与只读扫描(与产品需求中「不在运行时依赖 MCP」一致:此为独立进程,供开发辅助,不参与最终用户安装包逻辑)。

本地运行:

dotnet run --project src/TigerCleaner.Mcp/TigerCleaner.Mcp.csproj

在 Cursor 的 MCP 配置中增加一项(将下面 JSON 里 --project 的路径改为本机克隆目录下的 src/TigerCleaner.Mcp/TigerCleaner.Mcp.csproj 的绝对路径):

{
  "mcpServers": {
    "tigercleaner": {
      "command": "dotnet",
      "args": [
        "run",
        "--project",
        "C:/path/to/CClean/src/TigerCleaner.Mcp/TigerCleaner.Mcp.csproj"
      ]
    }
  }
}

暴露的工具名由 SDK 从方法名生成(例如 GetDataPathsListRulesScanEnabledRulesAsync)。ScanEnabledRulesAsyncrecordHistory 默认为 false;设为 true 时与 CLI scan 一样会写入一条 ScanHistory 记录。

条件编译与发布 exe(单文件、自包含 win-x64)

根目录 Directory.Build.props 在传入 MSBuild 属性 TigerPublishExe=true 时会启用 win-x64、自包含与 PublishSingleFile,并定义预处理器符号 TIGER_PUBLISH_EXE(可在 Program.cs 等处以 #if TIGER_PUBLISH_EXE 使用)。

dotnet publish src/TigerCleaner.UI/TigerCleaner.UI.csproj -c Release -p:TigerPublishExe=true -o publish/ui
dotnet publish src/TigerCleaner.CLI/TigerCleaner.CLI.csproj -c Release -p:TigerPublishExe=true -o publish/cli
dotnet publish src/TigerCleaner.Mcp/TigerCleaner.Mcp.csproj -c Release -p:TigerPublishExe=true -o publish/mcp

同一属性 TigerPublishExe=true 由根目录 Directory.Build.props 统一启用单文件、自包含 win-x64。一次 dotnet build TigerCleaner.sln 会同时生成 UI、CLI、MCP 与 Core 的调试/发布输出目录;上列三条 dotnet publish 则分别产出三个 exe(例如 publish/ui/TigerCleaner.UI.exepublish/cli/TigerCleaner.CLI.exepublish/mcp/TigerCleaner.Mcp.exe)。Cursor 里可把 MCP 的 command 改为上述 TigerCleaner.Mcp.exe 的绝对路径、args 留空或仅传额外参数。

若发布失败:GenerateBundle / IOException … file is being used by another process
说明目标目录里的 TigerCleaner.UI.exe(或 CLI exe)正被占用(常见:程序仍在运行、杀毒实时扫描)。任选其一:

  1. 退出正在运行的 TigerCleaner 后再执行上面的 dotnet publish;或
  2. 使用脚本发布到新目录(推荐,不覆盖旧 exe):
    .\scripts\Publish-UI.ps1 / .\scripts\Publish-CLI.ps1
  3. 临时改输出路径,例如 -o publish/ui-new

数据与配置

默认目录:%LocalAppData%\TigerCleaner\

  • rules.json:清理规则(首次运行从内置模板复制)
  • history.db:扫描/清理历史
  • user-settings.json:用户设置(例如是否允许清理「下载」)
  • tiger-cleaner-*.log:按日滚动的 Serilog 文本日志

文档(中英文)

以下文件由版本库跟踪:

中文 English
doc/详细设计.md doc/detailed-design.md
doc/使用手册.md doc/user-guide.md
(中文需求见本地 doc/需求.md doc/requirements.md

以下路径已列入 .gitignore,仅在本地维护(不随克隆下发):doc/开发目标和约束.mddoc/需求.mddoc/development-goals-and-constraints.md(及误名的 doc/yues.md)。需要团队共享时可用 CI 制品或内部 Wiki,勿将敏感内容提交进本仓库。

说明

第一版不包含注册表清理;删除仅发生在规则定义的安全目录内;图形界面与 CLI 在非 dry-run 清理前均需用户确认。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors