Программа для модификации файлов с помощью побайтовой операции XOR с 8-байтным ключом. Предназначена для обработки файлов большого объёма (вплоть до десятков гигабайт) без «замирания» интерфейса. Реализована поддержка паузы, возобновления и отмены операции, работа по таймеру, гибкая настройка имён выходных файлов и автоматическое удаление исходников.
Программа для модификации файлов с помощью XOR с 8-байтным ключом.
- Потоковая обработка файлов большого размера (до 10 ГБ и более).
- Отображение прогресса в реальном времени.
- Приостановка и возобновление обработки в любой момент.
- Отмена операции с корректным завершением.
- Работа по таймеру (периодический запуск) или разовый запуск.
- Выбор маски файлов, удаление исходников, настройка конфликтов имен.
- Qt 5.15 или новее (или Qt 6).
- Компилятор с поддержкой C++17.
- Используйте qmake:
qmake ModFilesWithBO.pro
make
- Или откройте проект в Qt Creator.
-
Заполните поля:
- Путь входной директории – где искать файлы.
- Путь выходной директории – куда сохранять обработанные файлы.
- Маска файлов – например,
*.txtилиtest*.bin(можно несколько через запятую). - Ключ (hex) – 16 шестнадцатеричных символов (ровно 8 байт), например
1234567890ABCDEF. - Удалять исходные файлы – если включено, исходники удаляются после успешной обработки.
- Действие при конфликте имён – перезаписать или добавить суффикс
_N. - Режим работы – разовый или по таймеру.
- Период (если выбран таймер) – интервал между запусками.
-
Нажмите Запустить. Откроется диалог прогресса, где можно поставить на паузу или остановить обработку.
MainWindow– главное окно, управляет UI и запускает процесс в отдельном потоке.FileModifier– рабочий класс, выполняет XOR-обработку файлов, поддерживает паузу/отмену.ProgressDialog– диалог прогресса, отображает статус и позволяет управлять процессом.FileSystemUtils– вспомогательные функции для работы с файловой системой.
Обработка ведётся в отдельном потоке, что гарантирует отзывчивость интерфейса. Пауза реализована через ожидание условной переменной, сохранение позиции в файле и переоткрытие файлов.
- Ключ должен быть ровно 8 байт (16 hex-символов).
- При модификации имени выходного файла (добавление суффикса) программа проверяет существование файла и подбирает свободное имя.
- При удалении исходного файла он удаляется только после успешной записи выходного.