批量删除广告文件删除指定文件小工具
删除指定文件(DeleteNamedFiles)
有时候我们经常会遇到一些同名的重复的广告文件,甚至出现在每一个目录,于是我写了一个轻量的批量清理工具:在多个目录中按“文件名匹配(含扩展名)”删除文件,支持通配符、隐藏/系统文件、队列处理、拖拽操作与自动清理,支持多个文件夹同时处理,比直接搜索更方便。

功能特性
- 文件名匹配删除(仅按文件名,不含路径)
- 支持拖拽:
- 将文件拖入“文件名列表”自动提取完整文件名(含后缀),去重加入
- 将一个或多个目录拖入“目录列表”加入处理队列(去重)
- 自动开始清理:
- 程序启动时,若“文件名列表”与“目录列表”均非空且未在处理,会自动开始
- 拖入目录后亦会自动开始(若文件名列表非空且未在处理)
- 手动控制保留:
- 开始、取消、重试失败、清空日志等操作
- DPI/多屏精准居中显示,统一应用图标(应用、标题栏、任务栏、托盘)
- 托盘图标可退出,退出时自动清理托盘图标避免残留
- 配置持久化到与 exe 同目录、同名的 json 文件(例如
DeleteNamedFiles.json)
使用方法
- 填写“文件名列表”
- 直接输入并点击“添加”,或
- 将文件拖入左侧“文件名列表”,会自动提取其“文件名+扩展名”(不含路径),并忽略大小写去重
- 准备“目录列表”
- 点击“选择目录”或将一个/多个目录拖入右下“目录列表”,会按加入顺序处理
- 列表去重:相同目录不会重复加入
- 开始清理
- 满足条件(文件名列表非空、目录列表非空、且未在处理)时会自动开始;也可点击“开始”手动触发
- 处理中可点击“取消”终止
- 处理完成后可点击“重试失败”对失败的文件名进行再试
- 查看日志
- 右上“处理日志”区域会实时输出进度与结果,可“清空日志”
选项说明
- 启用通配符:
- 勾选后按模式匹配(如
*.tmp,thumbs.db等),不勾选则按完整文件名严格匹配
- 勾选后按模式匹配(如
- 包含隐藏文件 / 包含系统文件:
- 勾选后会对隐藏/系统属性的文件也进行匹配与删除
- 自动清理只读:
- 勾选后遇到只读文件会先移除只读属性再尝试删除
注意事项
- 删除为不可逆操作,请谨慎使用;建议先在非关键目录试用确认规则
- 某些目录(如受权限保护的目录)可能需要以“管理员身份运行”才能删除
- 文件名匹配不含路径:例如你添加
a.txt,则会删除队列中每个目录下发现的同名a.txt - 拖拽时:
- 左侧区域拖入的是“文件”,并按“文件名+扩展名”加入列表
- 右侧区域拖入的是“目录”,作为待处理队列加入
- 窗口布局采用“内容决定大小”,不同 DPI 下能正常显示;窗口最小宽高已限制以避免过小
配置文件
- 位置:与程序
DeleteNamedFiles.exe同目录 - 文件名:
DeleteNamedFiles.json - 内容包含:
- 文件名列表 Names
- 最近目录/队列 RecentDirectories
- 各类开关(EnableWildcard/IncludeHidden/IncludeSystem/AutoClearReadOnly)
- 启动居中 CenterOnStartup(默认
true,不在 UI 暴露)
构建与发布
- 依赖:.NET 8(桌面运行需安装 .NET 8 Desktop 运行时)
- 构建(Debug):
dotnet build - 发布(单文件,依赖框架):输出到仓库根目录
publish/dotnet publish -c Release -o ..\publish -p:PublishSingleFile=true -p:SelfContained=false - 如需“自包含单文件版本”(目标机器无需安装 .NET 运行时):
注意:自包含体积更大dotnet publish -c Release -o ..\publish -p:PublishSingleFile=true -p:SelfContained=true -r win-x64
常见问题
- 拖拽显示禁止符号:请确保拖拽到对应区域(左侧文件名/右侧目录),以及当前没有正在处理
- 配置文件名变为
.json无名称:本工具已使用Environment.ProcessPath等方式确保得到正确的 exe 名称;若仍出现,请确认程序所在目录是否具有写入权限 - 托盘图标未消失:程序异常退出可能导致托盘残留;正常退出或再次运行应能清理
如有新需求(例如:处理完自动从队列移除、处理完成总结弹窗、一键发布脚本等),欢迎提出,我可以继续为你完善。
