#

**P7Zip_GUI**
#

**Инструкция к графическому интерфейсу**
---

Приложение старается использовать стильный **Fusion** (как в _KDE Plasma_) — выглядит круто!

Но если этот стиль не найден в системе, оно без проблем переключится на другой (например, **Breeze** или **Windows**) — работа продолжится без сбоев!
---

_Log-файлы/настройки/команды из командной строки находятся в папке ~/.config/p7zip_gui/_<br>

_Максимальный размер log-файла 10MB_<br>

_Количество резервных копий log-файлов 1_<br>
🗂 _Количество хранимых команд из командной строки 30_
---
##

**Общие положения**
Данная программа представляет собой удобный графический интерфейс для популярного инструмента архивации **7-Zip**. Она позволяет легко сжимать и извлекать файлы, настраивать уровень сжатия, выбирать тип архива и другое. Интерфейс разработан на базе библиотеки **PyQt6**, что обеспечивает простой доступ к функционалу утилиты **7-Zip** даже пользователям, не знакомым с командной строкой.
---
##

**Установка и запуск**
Перед началом работы убедитесь, что на вашем компьютере установлена программа **p7zip**, поскольку этот инструмент является основой для работы приложения. Если **p7zip** отсутствует, приложение выдаст предупреждение и предложит установить программу вручную.

<u>***Зависимости для работы приложения***:</u><br>
python3-psutil<br>
python3-markdown<br>
python3-qt6-core<br>
python3-qt6-gui<br>
python3-qt6-widgets<br>
python3-sip-qt6
---
## Основные возможности
### 1. Архивация файлов
Чтобы сжать выбранные файлы, следуйте инструкции:<br>
1. Откройте главное окно программы.<br>
2. Выберите файлы или папки, которые хотите заархивировать.<br>
3. Нажмите кнопку **«Сжать»** на панели инструментов.<br>
4. Настройте уровень сжатия, тип архива, необходимость сохранения структуры директорий и т. д.<br>
5. Подтвердите действие нажатием кнопки **«ОК»**.
6. Укажите место хранения будущего архива.
После начала процесса появится диалоговое окно с неопределённым прогресс баром.
### 2. Извлечение файлов
Чтобы извлечь содержимое архива, сделайте следующее:<br>
1. Откройте главное окно программы.<br>
2. Нажмите кнопку **«Извлечь»** на панели инструментов или выберите пункт меню **«Главная → Извлечь»**.<br>
3. Выберите архив, содержащий нужный контент.<br>
4. Определите папку назначения для распакованных файлов.<br>
5. Приложение автоматически проверит наличие защиты паролем и попросит ввести пароль, если это необходимо.
Операция также сопровождается отображением статуса в отдельном окне.
###3. Просмотр архива

Чтобы посмотреть содержимое архива, выполните следующие шаги:<br>
1. Откройте главное окно программы

.<br>
2. Нажмите кнопку **«Просмотреть архив»**

на панели инструментов или выберите пункт меню **«Главная → Просмотреть архив»**.<br>
3. Выберите нужный архив

.<br>
4. Если в архиве зашифрованы имена файлов, программа запросит ввод пароля

.
### 4. Конвертация архива

Чтобы конвертировать архив, выполните следующие шаги:<br>
1.

Откройте главное окно программы.<br>
2.

Перейдите в меню **«Инструменты → Конвертировать архив»**.<br>
3.

Выберите исходный архив и целевой формат.<br>
* Если нужен пароль — задайте его<br>
4.

Если исходный архив защищён паролем, приложение само спросит вас его ввести.<br>
* Пароль сохранится в целевом архиве.
**Важные детали:**<br>
-

Операция сопровождается отображением статуса в отдельном окне.<br>
-

Полученный архив будет находиться в той же папке, что и исходный.<br>
-

Если архив с таким же именем и расширением уже существует, он будет заменён.<br>
- Конвертируется с настройками по умолчанию.
###

5. Проверка целостности архива
Чтобы убедиться, что ваш архив цел и невредим, выполните следующие шаги:<br>
1.

Откройте главное окно программы.<br>
2.

Перейдите в меню **«

Инструменты →

Проверить целостность архива»**.<br>
3. 🗂 Выберите архив, который хотите проверить.<br>
4.

Если архив защищён паролем, приложение само спросит вас его ввести.
Операция также сопровождается отображением статуса в отдельном окне.
### 6.

Командная строка

Чтобы воспользоваться мощью командной строки, следуйте простым шагам:<br>
1.

Откройте главное окно программы.<br>
2.

Перейдите в меню **«

Интрументы →

Командная строка»**.<br>
3. Наберите нужную команду и нажмите кнопку **«⬇ Выполнить»**.
Все операции сопровождаются отображением статуса.
Инструмент позволяет выполнять различные команды.<br>
Для наблюдения за процессом создания или распаковки архива добавьте волшебный ключик

**-bsp1**<br>

Архив создаётся в домашнем каталоге.

<br>
Листайте историю команд стрелочками **«Вверх/Вниз»**

.<br>
Мгновенно переместить курсор в начало или конец команды можно клавишами **«HOME/End»**

.<br>
Если захотите прервать выполнение команды, воспользуйтесь кнопкой **«

Отмена»**.<br>
Вот некоторые полезные ключи и команды:<br>
Использование: **7z <команда> [<переключатели>] <имя_архива> [<имена_файлов>]**<br>
_<Команды>_<br>
**a** : Добавить файлы в архив<br>
**b** : Тестирование<br>
**d** : Удалить файлы из архива<br>
**e** : Извлечь файлы из архива (без использования имён каталогов)<br>
**h** : Рассчитать хэш-значения для файлов<br>
**i** : Показать информацию о поддерживаемых форматах<br>
**l** : Показать содержимое архива<br>
**rn** : Переименовать файлы в архиве<br>
**t** : Проверка целостности архива<br>
**u** : Обновление файлов в архиве<br>
**x** : Извлечение файлов с полными путями<br>
_<Переключатели>_<br>
**--** : Прекратить разбор переключателей<br>
**@listfile** : указать путь к файлу со списком, содержащему имена файлов<br>
**-ai[r[-|0]]{@listfile|!wildcard}** : Включить архивы<br>
**-ax[r[-|0]]{@listfile|!wildcard}** : Исключить архивы<br>
**-ao{a|s|t|u}** : установить режим перезаписи<br>
**-an** : отключить поле archive_name<br>
**-bb[0-3]** : установить уровень вывода журнала<br>
**-bd** : отключить индикатор выполнения<br>
**-bs{o|e|p}{0|1|2}** : установить поток вывода для строки вывода/ошибок/прогресса<br>
**-bt** : показать статистику времени выполнения<br>
**-i[r[-|0]]{@listfile|!подстановочный знак}** : включить имена файлов<br>
**-m{Параметры}** : установить метод сжатия<br>
**-mmt[N]** : установить количество потоков ЦП<br>
**-mx[N]** : установить уровень сжатия: -mx1 (самый быстрый) ... -mx9 (сверхвысокий)<br>
**-o{Каталог}** : установить выходной каталог<br>
**-p{Пароль}** : установить пароль<br>
**-r[-|0]** : рекурсивно обрабатывать подкаталоги<br>
**-sa{a|e|s}** : установить режим имени архива<br>
**-scc{UTF-8|WIN|DOS}** : установить кодировку для ввода/вывода в консоли<br>
**-scs{UTF-8|UTF-16LE|UTF-16BE|WIN|DOS|{id}}** : установить кодировку для файлов со списком<br>
**-scrc[CRC32|CRC64|SHA1|SHA256|*]** : установить хэш-функцию для команд x, e, h<br>
**-sdel**: удалить файлы после сжатия<br>
**-seml[.]**: отправить архив по электронной почте<br>
**-sfx[{имя}]**: создать SFX-архив<br>
**-si[{имя}]**: считать данные из стандартного потока ввода<br>
**-slp**: установить режим больших страниц<br>
**-slt**: показать техническую информацию для команды l (List)<br>
**-snh**: сохранить жёсткие ссылки как ссылки<br>
**-snl**: сохранить символические ссылки как ссылки<br>
**-sni**: сохранить информацию о безопасности NT<br>
**-sns[-]** : сохранять альтернативные потоки NTFS<br>
**-so** : записывать данные в стандартный вывод<br>
**-spd** : отключить подстановочные знаки в именах файлов<br>
**-spe** : исключить дублирование корневой папки для команды извлечения<br>
**-spf** : использовать полные пути к файлам<br>
**-ssc[-]** : установить режим чувствительности к регистру<br>
**-ssw** : сжимать общие файлы<br>
**-stl** : установить временную метку архива на основе последнего изменённого файла<br>
**-stm{HexMask}** : установить маску привязки потоков ЦП (шестнадцатеричное число)<br>
**-stx{Type}** : исключить тип архива<br>
**-t{Type}** : установить тип архива<br>
**-u[-][p#][q#][r#][x#][y#][z#][!newArchiveName]** : обновить параметры<br>
**-v{Size}[b|k|m|g]** : создать тома<br>
**-w[{path}]** : назначить рабочий каталог. Пустой путь означает временную директорию<br>
**-x[r[-|0]]{@listfile|!wildcard}** : исключить имена файлов<br>
**-y** : отвечать «Да» на все запросы
---
## Настройки
Программу можно гибко настроить, используя встроенный раздел настроек:<br>
-

Автоматическое замещение существующих файлов при извлечении<br>
- Извлечь файлы из архива, игнорируя имена каталогов и удалить пустые папки (конфликтующие файлы получат уникальные имена).<br>
-

Удалить архив после распаковки. Архив удаляется безвозвратно (только если операция прошла успешно).<br>
-

Выбор типа архива и уровня сжатия<br>
-

Возможность включения шифрования паролем
Доступ к настройкам осуществляется через меню

**«Настройки → Перезапись»**, либо открывается соответствующее диалоговое окно при старте операции архивации.
---
### Особенности и ограничения
- Высокая степень сжатия в формате **7z** с использованием **LZMA2**
- Поддерживаемые форматы:<br>
Упаковка / распаковка: _7z, XZ, BZIP2, GZIP, TAR, ZIP и WIM_<br>
Только для распаковки: _APFS, AR, ARJ, CAB, CHM, CPIO, CramFS, DMG, EXT, FAT, GPT, HFS, IHEX, ISO, LZH, LZMA, MBR, MSI, NSIS, NTFS, QCOW2, RAR, RPM, SquashFS, UDF, UEFI, VDI, VHD, VHDX, VMDK, XAR и Z_
- Для форматов **ZIP** и **GZIP** _7-Zip_ обеспечивает степень сжатия на **2–10 %** выше, чем у PKZip и WinZip
- Надежное шифрование **AES-256** в форматах **7z** и **ZIP**
- Поддерживаются разные уровни сжатия: от быстрого (**0**) до максимального (**9**)
- Возможно сохранение структуры папок внутри архива
###

Функция «Drop» (перетаскивание файлов)
Функция **Drag & Drop** позволяет быстро добавлять файлы в программу простым перетаскиванием из файлового менеджера — без необходимости использовать диалоговое окно выбора файлов.<br>
Как использовать функцию _Drop_:<br>
1. Откройте главное окно программы.<br>
2. Перетащите нужные файлы или папки из файлового менеджера прямо в главное окно.<br>
3. Нажмите **«Сжать»** — для создания архива из перетаскиваемых файлов.
Во время операции **Drag & Drop** интерфейс даёт понятные подсказки:<br>
- Зелёная пунктирная рамка вокруг главного окна и иконка — зона перетаскивания активна, файлы будут приняты.
### Уровень сжатия
_Уровень сжатия_ — это параметр, определяющий степень уменьшения размера данных (файла, потока и т. д.) при применении алгоритма сжатия. Он отражает баланс между:<br>
- размером выходного файла;<br>
- качеством восстановленных данных (если сжатие с потерями);<br>
- временем и ресурсами, затрачиваемыми на сжатие и распаковку.
### Метод сжатия
_Метод сжатия (алгоритм сжатия)_ — это способ преобразования данных для уменьшения их объёма.
### Размер словаря при сжатии данных
_Размер словаря_ — это объём памяти для хранения повторяющихся блоков данных в алгоритме сжатия.<br>
Он напрямую влияет на степень сжатия, скорость и требования к памяти.<br>
Большой словарь улучшает сжатие больших файлов, но замедляет процесс и требует больше ОЗУ.<br>
Малый словарь ускоряет сжатие и снижает потребление памяти, но даёт меньший коэффициент сжатия.<br>
Оптимальный размер выбирают исходя из размера данных, требований к скорости и доступной памяти.<br>
Диапазон от 4 до 512 мегабайт.
### Многопоточность (количество потоков ЦП)
Позволяет использовать несколько процессорных потоков для параллельного сжатия данных, что значительно ускоряет процесс архивирования.<br>
Есть зависимость от формата: количество используемых потоков варьируется в зависимости от формата архива и выбранного алгоритма сжатия
### Режим обновления
_Добавить и заменить_<br>
Действие подразумевает, что новые данные будут добавлены, а существующие — заменены при совпадении.
_Только обновить_<br>
Операция затрагивает только уже существующие записи — новые данные не добавляются, обновляются лишь имеющиеся.
_Синхронизировать_<br>
Режим полной синхронизации: система сверит данные и приведёт их к единому состоянию — добавит недостающее, обновит изменённое, удалит лишнее.
_Добавить без замены_<br>
Новые данные будут добавлены, но ни одна существующая запись не будет изменена или перезаписана.
При работе с архивами форматов .tar.gz, .tar.bz2, .tar.xz операция «обновления» фактически работает как «синхронизация». Это связано с особенностями структуры и сжатия данных в этих форматах.
### Шифрование паролем
Это метод защиты данных путем их преобразования в нечитаемый формат, доступ к которому возможен только при вводе правильного пароля.
### Шифрование имен файлов
Это дополнительный уровень защиты архива, при котором не только содержимое файлов, но и их названия, размеры, атрибуты и комментарии становятся недоступными без ввода правильного пароля.
### Сплошное блочное архивирование
_Сплошное блочное архивирование_ даёт значительное улучшение степени сжатия за счёт:<br>
- обработки всех файлов как единого потока;<br>
- использования общего словаря для всех данных;<br>
- поиска повторяющихся последовательностей между файлами.<br>
Выбирайте этот метод, если:<br>
- вам важен минимальный размер архива;<br>
- файлы в архиве похожи друг на друга;<br>
- вы создаёте архив для долгосрочного хранения или передачи;<br>
- у вас достаточно оперативной памяти и времени на сжатие.<br>
Откажитесь от него, если:<br>
- нужен быстрый доступ к отдельным файлам;<br>
- архив будет часто обновляться;<br>
- критически важна устойчивость к повреждениям.
### Сохранение структуры каталогов
Это функция, позволяющая при архивации файлов и папок сохранять их исходную иерархию и расположение относительно друг друга.
### Удаление файлов после сжатия

**Внимание!** Файлы (исходный архив и все тома) удаляются безвозвратно из файловой системы. Удаление выполняется только после подтверждения успешного завершения операции распаковки.<br>
_Какие файлы удаляются_<br>
Автоматическое удаление затрагивает:<br>
- исходный файл архива (например, archive.zip);<br>
- тома многотомного архива, если они соответствуют одному из следующих шаблонов именования:<br>
_Шаблон 1_: name.partN.extension<br>
- структура: <основное_имя>.part<номер>.<расширение_архива>;<br>
- номер тома (N) может быть 1–3‑значным (дополняется нулями слева);<br>
- поддерживаемые расширения: .rar;<br>
- примеры: project.part1.rar, project.part2.rar, project.part10.rar.<br>
_Шаблон 2_: name.extension.NNN<br>
- структура: <основное_имя>.<расширение_архива>.<трёхзначный_номер>;<br>
- номер тома всегда трёхзначный (с ведущими нулями);<br>
- примеры: archive.7z.001, archive.7z.002, archive.7z.123.<br>
_Условия удаления_<br>
- включена настройка «Удалять архив и тома после успешной распаковки»;<br>
- операция распаковки завершена без ошибок (exit_code == 0);<br>
- файлы найдены в той же директории, что и исходный архив.
### Разделение архива на тома
Установите флажок **«Разделить на тома»** и укажите целое число МБ в поле **«Размер тома»** — архив разобьётся на части этого размера. Если флажок не ставить, получится обычный (однотомный) архив.<br>
Диапазон: от 1 МБ до 10 000 МБ.
---
## Заключение
Интерфейс **P7Zip_GUI** прост в освоении благодаря удобству настройки всех необходимых параметров. Используйте его для повышения эффективности своей работы с файлами!
Убедитесь, что выбранный метод соответствует типу архива:
<table border="1">
<tr><th>Метод сжатия</th><th>Рекомендуемый тип архива</th></tr>
<tr><td>LZMA2</td><td><code>.7z</code></td></tr>
<tr><td>Deflate</td><td><code>.zip</code></td></tr>
<tr><td>PPMd</td><td><code>.7z</code></td></tr>
</table>

Как выбрать правильный размер словаря?<br>
Рекомендуемые значения размеров словаря зависят от особенностей ваших данных:
<table border="1">
<tr><th>Рекомендуемый размер</th><th>Описание</th></tr>
<tr><td>4 MB</td><td>Минимально приемлемое значение для небольших файлов.</td></tr>
<tr><td>8 MB</td><td>Хорошее соотношение скорости и качества сжатия для большинства случаев.</td></tr>
<tr><td>16 MB</td><td>Подходит для средних и крупных файлов, улучшает качество сжатия.</td></tr>
<tr><td>32 MB</td><td>Используется для большого объёма данных, требует больше ресурсов.</td></tr>
<tr><td>64 MB и выше</td><td>Рекомендуется для специфичных случаев с крупными массивами одинаковых данных.</td></tr>
</table>
Важно помнить: увеличение размера словаря значительно замедляет скорость сжатия и увеличивает нагрузку на систему!
---
_Тестировалось с версией p7zip 17.05_