Skip to content

Repository files navigation

cpp-qt-modif-files

Программа для модификации файлов с помощью побайтовой операции XOR с 8-байтным ключом. Предназначена для обработки файлов большого объёма (вплоть до десятков гигабайт) без «замирания» интерфейса. Реализована поддержка паузы, возобновления и отмены операции, работа по таймеру, гибкая настройка имён выходных файлов и автоматическое удаление исходников.

Описание

Программа для модификации файлов с помощью XOR с 8-байтным ключом.

Возможности

  • Потоковая обработка файлов большого размера (до 10 ГБ и более).
  • Отображение прогресса в реальном времени.
  • Приостановка и возобновление обработки в любой момент.
  • Отмена операции с корректным завершением.
  • Работа по таймеру (периодический запуск) или разовый запуск.
  • Выбор маски файлов, удаление исходников, настройка конфликтов имен.

⚙️ Сборка и запуск

Требования

  • Qt 5.15 или новее (или Qt 6).
  • Компилятор с поддержкой C++17.

Сборка

  • Используйте qmake:
  qmake ModFilesWithBO.pro
  make
  • Или откройте проект в Qt Creator.

Использование

  1. Заполните поля:

    • Путь входной директории – где искать файлы.
    • Путь выходной директории – куда сохранять обработанные файлы.
    • Маска файлов – например, *.txt или test*.bin (можно несколько через запятую).
    • Ключ (hex) – 16 шестнадцатеричных символов (ровно 8 байт), например 1234567890ABCDEF.
    • Удалять исходные файлы – если включено, исходники удаляются после успешной обработки.
    • Действие при конфликте имён – перезаписать или добавить суффикс _N.
    • Режим работы – разовый или по таймеру.
    • Период (если выбран таймер) – интервал между запусками.
  2. Нажмите Запустить. Откроется диалог прогресса, где можно поставить на паузу или остановить обработку.

🧱 Архитектура

  • MainWindow – главное окно, управляет UI и запускает процесс в отдельном потоке.
  • FileModifier – рабочий класс, выполняет XOR-обработку файлов, поддерживает паузу/отмену.
  • ProgressDialog – диалог прогресса, отображает статус и позволяет управлять процессом.
  • FileSystemUtils – вспомогательные функции для работы с файловой системой.

Обработка ведётся в отдельном потоке, что гарантирует отзывчивость интерфейса. Пауза реализована через ожидание условной переменной, сохранение позиции в файле и переоткрытие файлов.

Примечания

  • Ключ должен быть ровно 8 байт (16 hex-символов).
  • При модификации имени выходного файла (добавление суффикса) программа проверяет существование файла и подбирает свободное имя.
  • При удалении исходного файла он удаляется только после успешной записи выходного.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages