C# 开发 Windows 桌面工具:磁盘清理工具实战(WinForms)
用 C# WinForms 开发 Windows 桌面工具,以磁盘清理工具 SpaceSniper 为例,讲解界面设计、后台线程扫描文件、安全删除、打包发布全流程。
为什么选 C# 开发桌面工具
C# + WinForms 是 Windows 桌面工具开发的黄金组合。开发速度快、性能好、打包简单,生成的 exe 在大多数 Windows 机器上直接运行。
后台线程扫描文件(避免界面卡死)
private async void btnScan_Click(object sender, EventArgs e)
{
btnScan.Enabled = false;
await Task.Run(() => ScanDisk(selectedDrive));
btnScan.Enabled = true;
}
private void ScanDisk(string drive)
{
var files = Directory.EnumerateFiles(drive, "*",
new EnumerationOptions { RecurseSubdirectories = true })
.Where(f => new FileInfo(f).Length > 100 * 1024 * 1024);
foreach (var file in files)
{
var fi = new FileInfo(file);
listView.Invoke(() => listView.Items.Add(new ListViewItem(new[] {
fi.Name, FormatSize(fi.Length), fi.DirectoryName
})));
}
}
安全删除(移入回收站)
FileSystem.DeleteFile(
filePath,
UIOption.OnlyErrorDialogs,
RecycleOption.SendToRecycleBin
);
打包发布为单文件 exe
dotnet publish -r win-x64 --self-contained true -p:PublishSingleFile=true
工具下载:关注公众号「杜兴华写代码」,发送「SpaceSniper」获取。