# 空文件夹清理 · NullClean

Windows 桌面程序，支持 Windows 10 / 11（64 位）。

## 使用

1. 双击 `dist/NullClean.exe`。
2. 输入目标目录或点击“浏览”。
3. 选择“包含子文件夹”：开启时从最深层向上清理；关闭时只检查目标目录的第一层子文件夹。
4. “指定文件名”可留空，此时只清理空文件夹。填写 `desktop.ini` 等完整文件名后，只有此文件的文件夹也会清理，文件随文件夹一起移入回收站。按完整文件名匹配，不区分大小写，不支持通配符和路径。
5. 点击“扫描预览”，查看候选目录后点击“移入回收站”，确认开始。

所选根目录始终保留。包含其他文件、无法访问的目录、符号链接和目录联接会保留或跳过。隐藏文件也参与判断。子目录清理后变空的父目录会在同一轮清理中处理。删除前再次检查目录内容，发生变化时跳过。清理过程中可点击“停止”，当前系统回收操作结束后停止。

删除由 Windows 回收站处理，恢复时到回收站还原。网络位置、可移动介质等可能不支持回收站；Windows 的错误或确认对话框会由系统显示。清理前建议暂停向该目录写入文件的其他程序，避免预览与删除期间内容变化。

## 开发

需要 .NET 10 SDK。界面使用 WinForms，清理逻辑独立于界面。

```powershell
dotnet build src/NullClean/NullClean.csproj -c Release
dotnet run --project tests/NullClean.Tests -c Release
dotnet publish src/NullClean/NullClean.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true -o dist
```

发布结果包含 .NET 运行时，用户无需另行安装。扫描只读取目录，实际删除仅在预览后的确认操作中执行。
