Утилита на C# (.NET), которая удаляет из выбранной папки файлы, имена которых подходят под маску — например, все файлы, в имени которых есть слово «копия». Есть оконная (WinForms) и консольная версии.
- Поиск по маске с подстановочными символами
*и? - Если маска не содержит
*/?, она трактуется как подстрока (копия→*копия*) - Поиск без учёта регистра
- Рекурсивный обход вложенных папок
- Предпросмотр найденных файлов перед удалением
- В оконной версии — режим «не удалять, а перемещать найденные файлы в отдельную папку» (при совпадении имён добавляется суффикс
(1),(2), …)
Готовый exe (единый файл, не требует установленного .NET) — в разделе Releases.
- Выберите папку и укажите маску (по умолчанию
копия). - Нажмите «Найти» — появится список файлов; снимите галочки с тех, которые нужно оставить.
- Нажмите «Удалить отмеченные», либо включите галочку «Не удалять, а перемещать…», укажите папку назначения и нажмите «Переместить отмеченные».
Сборка из исходников:
dotnet publish FileMaskCleaner.Gui -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -p:EnableCompressionInSingleFile=truedotnet run --project FileMaskCleaner.Cli -- <папка> <маска> [опции]
| Опция | Описание |
|---|---|
-r, --recursive |
Искать также во вложенных папках |
--dry-run |
Только показать, что будет удалено |
-y, --yes |
Не спрашивать подтверждение |
-h, --help |
Справка |
# Удалить все файлы со словом "копия" в имени (с подтверждением)
FileMaskCleaner "C:\Docs" копия
# Посмотреть, что будет удалено, включая подпапки, без удаления
FileMaskCleaner "C:\Docs" "* - копия*" -r --dry-run
# Удалить все .tmp-файлы рекурсивно без вопросов
FileMaskCleaner "C:\Docs" "*.tmp" -r -yТребуется .NET SDK 10.0+.
dotnet build
dotnet run -- "C:\Docs" копия --dry-runИли собрать самодостаточный exe:
dotnet publish -c Release0— успешно (или отменено пользователем)1— ошибка аргументов / папка не найдена2— часть файлов удалить не удалось
Локальный компьютер не нужен: сборкой exe занимается GitHub Actions (release.yml).
- Отредактируйте код прямо на GitHub (кнопка ✏️ в файле или клавиша
.для веб-редактора). - Откройте Actions → Release → Run workflow, укажите тег новой версии (например
v1.3.0) и запустите. Через пару минут готовыйFileMaskCleaner.exeпоявится в Releases.
Альтернатива: просто создайте тег v* (или релиз с новым тегом) — workflow соберёт exe
и прикрепит его к релизу автоматически. Запуск workflow без тега делает проверочную
сборку без публикации релиза (exe остаётся артефактом сборки).