Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » 7-Zip | 7z | 7Zip (часть 4)

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81

Открыть новую тему     Написать ответ в эту тему

Maz



Дед Мазай
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Предыдущие части: Часть 1  |  Часть 2  |  Часть 3


Официальный сайт | Страница проекта на SourceForge.net

Примечания: | Справка: | О программе:
LZMA SDK | История версий | Страница загрузки
На 7-Zip.org доступны сборки для всех поддерживаемых ОС, исходные коды,
а также пакет 7-Zip Extra (автономная консольная версия, библиотеки и плагин для FAR)
 
Тема Сборки и украшательства архиватора 7-Zip

Загрузить:

Последняя стабильная версия: 23.01 (20.06.2023) | Download 7-Zip 23.01 (2023-06-20)
 
Setup: Windows: x86 (SFX | MSI), x86-64 (SFX | MSI), ARM SFX, ARM64 SFX, Console: Linux: x86 | x86-64 | arm | arm64, macOS arm64/x86-64, Extra (x86/x64), LZMA SDK, Source (.7z | .tar.xz)
 
Последняя beta-версия: 24.03 (23.03.2024), для Linux/MacOs 23.03.2024 выложена v24.03 beta
Windows: (AMD64, SFX , x86, SFX , Arm64, SFX) | Linux: (AMD64, tar.xz , x86, tar.xz , Arm64, tar.xz , ARM, tar.xz) | MacOS X: (Arm64 and AMD64, tar.xz) | 7-Zip Extra: (7z. x86 + AMD64, DLL, standalone console, ANSI Far plug-in)
 
Последняя alpha-версия: 21.02 (06.05.2021)
x86 (7-Zip SFX) | x64 (7-Zip SFX)
 
Расшифровка обозначения аппаратных платформ к таблицам:
IA32 Win32 для x86/х86-64 и совместимых по набору машинных команд процессоров от i386 и новее    
AMD64 Win64 для AMD64/Intel EMT64 х64-86 совместимые процессоры от AMD K8 и новее    
IA64 Win64 для Intel Itanium/Itanium 2    
ARM Win32 для DEC StrongARM SA-110/Intel XScale совместимые процессоры    
Arm64 64-х битные RISC процессоры с архитектурой ARMv8-A и совместимые с ними

Achtung!
Некоторые провайдеры блокируют официальный сайт. Заходить туда можно через ТОР/прокси или скачивать файлы со страницы проекта на SourceForge.net
Скачивать с посторонних ресурсов, типа различных файлопомоек не рекомендуется, можно легко нарваться на различную заразу.

Примечание:
Alpha и Beta-версии 7-Zip зачастую являются развитием "стабильных" версий с улучшениями и исправлениями багов.
Ссылки на альфы ищем в разделе Open Discussion форума проекта 7-Zip, там же можно получить и консультацию от разработчика.


Дополнения:

  • Плагины для архиватора 7Zip на tc4shell
  • Архив 7-Zip ZS
  • Форк с поддержкой дополнительных алгоритмов - Zstandard, Brotli и др. На странице есть подробные результаты тестов разных алгоритмов и инструменты для тестирования.
  • Ultra7z Archive Optimizer 1.09 Ахтунг! при конвертации пропадают файлы - Проверяйте количество файлов в созданном архиве! Работайте с копиями.
  • Ultra7z Optimizer 0.12  
  • m7zRepacker 1.0.32.301 (версия 7-zip 9.20 включена)
  • Плагин MutiArc для Total Commander с поддержкой 7z
  • Отдельный 7z-плагин для Total Commander
  • Ещё один новый 7z-плагин для Total Commander - Total7zip
  • Иные программы, поддерживающие архивацию в формате 7z
    Дополнительные бесплатные утилиты:

  • 7z SFX Tools - модифицированные SFX модули 1.7.0.3900, Архив версий и 7ZSplit.exe
  • 7z SFX Constructor - программа для сжатия файлов\папок в один *.exe
  • Графическая оболочка для 7z SFX Tools (версия 0.6.0.1, 342 КБ, 01.05.2007)
  • Кнопка для создания и работы с SFX-архивами 7z в Total Commander (Архив версий) (автор: GORA2)
  • Универсальный загрузчик для многотомных 7z SFX архивов. Описание (автор: GORA2)
  • 7-Zip Parameter Generator - генератор параметров командной строки для особых настроек сжатия

    Часто задаваемые вопросы:

  • Почему для использования 2+ ГБ памяти желательно установить 64-битную версию Windоws?
  • Как добавить к имени архива текущие дату и время?
  • Если забыли пароль к архиву, cRARk for 7-Zip purpose, 7z Cracker, Parallel Password Recovery (7-zip module), Hashcat, Daossoft ZIP Password Rescuer
  • А почему вообще в последних версиях убрана поддержка NSIS?
  • Как помещать каждый файл/папку в отдельный архив? (Put each file to separate archive)

  • Всего записей: 38836 | Зарегистр. 26-02-2002 | Отправлено: 20:16 28-11-2021 | Исправлено: gjf, 13:38 24-03-2024
    insorg



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lelik007
    В теме WinRAR это тоже обсуждали. Загляни туда.  
    Если коротко, то WinRAR сначала распаковывает файл как есть, потом отдаёт команду на сжатие ntfs, а потом... ждёт! Тупо ждёт. Зачем? Почему? Неизвестно.
    Ничего не мешало сначала создать файл-заготовку в 0 байт, навесить атрибут на него и уже в него писать. Это эффективнее в три раза (ровно). Но увы. Или у разраба винрара не так много возможностей, или он сам это не предусмотрел (не предугадал?), но уж что имеем.

    Всего записей: 16755 | Зарегистр. 04-11-2010 | Отправлено: 13:17 14-02-2024
    codecs



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    сжатие NTFS бывает разным - для РЕ файлов используется сжатие LZX, которого ни Винрар, ни 7зип не умеют

    Всего записей: 2014 | Зарегистр. 22-07-2003 | Отправлено: 13:26 14-02-2024
    insorg



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    codecs
    Про /exe:lzx - отдельнная песня. Это вообще идёт через отдельный ntfs поток WOF, который умеют только Win10+. Никакие легаси тут не катят, как и линуха и куча других систем. Только хардкор.
    Так что, тут надо не "нативно уметь" (я даже не буду спрашивать - "как?"), а просто быть способным сохранять нужный атрибут и при распаковке своевременно отдавать нужную команду. Да и всё. Ларчик прост, был бы ключик.

    Всего записей: 16755 | Зарегистр. 04-11-2010 | Отправлено: 13:34 14-02-2024
    codecs



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    а на винте размер кластера более 4 кб или просто тупо стоит запрет компрессии в политиках - и шо будет делать распаковщик?

    Всего записей: 2014 | Зарегистр. 22-07-2003 | Отправлено: 14:00 14-02-2024 | Исправлено: codecs, 14:02 14-02-2024
    euheny



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    insorg

    Цитата:
    Это эффективнее в три раза (ровно). Но увы.

    так у 7зип разве не также?
    это конечно проблема потомучто порождает дикую фрагментацию

    Всего записей: 4064 | Зарегистр. 22-11-2006 | Отправлено: 14:00 14-02-2024
    uShell

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    сжатие NTFS бывает разным - для РЕ файлов используется сжатие LZX

    Это всё-таки не NTFS-сжатие. От файловой системы требуется только поддерживать reparse points, остальное делает "навесной" драйвер.
     

    Цитата:
    на винте размер кластера более 4 кб или просто тупо стоит запрет компрессии в политиках - и шо будет делать распаковщик?

    Выплюнет предупреждение и продолжит распаковывать как есть. Вопрос в вызове одной-единственной API-функции, точнее - в месте, где её следует вызывать.
     

    Цитата:
    так у 7зип разве не также?
    это конечно проблема потомучто порождает дикую фрагментацию

    Сабж, кажется, вообще не поддерживает NTFS-сжатие. А фрагментация возникает как при записи в сжатый файл, так и при сжатии существующего - за это отвечает драйвер NTFS, который тупо резервирует по 16 кластеров, а потом занимает те из них, что требуются для сжатых данных.

    Всего записей: 1015 | Зарегистр. 12-06-2019 | Отправлено: 14:20 14-02-2024
    codecs



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Выплюнет предупреждение и продолжит распаковывать как есть.  

    не продолжит - т.к. получит ответ о невозможности записи без объяснения причин

    Всего записей: 2014 | Зарегистр. 22-07-2003 | Отправлено: 14:43 14-02-2024
    insorg



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    euheny

    Цитата:
    это конечно проблема потомучто порождает дикую фрагментацию

    Фрагментацию порождает любое мало-мальски существенное дело с файлом, когда его конечный размер и положение не известны. Посему странный аргумент. Да и для SSD фрагментация вообще не актуальна сама по себе. Зато экономия места - это всегда аргумент. В любых условиях.

    Всего записей: 16755 | Зарегистр. 04-11-2010 | Отправлено: 14:49 14-02-2024
    lelik007



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    insorg

    Цитата:
    Но увы. Или у разраба винрара не так много возможностей, или он сам это не предусмотрел (не предугадал?), но уж что имеем.

    Возможности Windows API, какие еще. Сделает альтернативный метод, тогда и будем смотреть, чем он лучше, и uShell там же упоминал, что есть схема, возможно более эффективная, если бы ее кто то реализовал на практике. Это в теории все хорошо, а как начнешь делать, а потом пробовать - много чего всплывет, в любом случае - это тестировать нужно и возможно переделывать, т.к. может быть разное поведение на HDD и SSD.
    В любом случае ни 7-zip, ни его вариация 7-zip ZS примера более лучшей рабочей реализации не предоставляет.
     

    Всего записей: 2770 | Зарегистр. 13-10-2006 | Отправлено: 15:13 14-02-2024
    insorg



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lelik007

    Цитата:
    схема, возможно более эффективная, если бы ее кто то реализовал на практике

    Так схема всё та же - распаковывать файл так, чтобы атрибут сжатый применялся до начала его записи. Это можно сделать двумя путями.
    1. Если на папке атрибут "сжатый" уже есть, тогда не надо делать ничего вообще. Всё "само".
    2. Если на папке атрибута нет, тогда создать заготовку файла в 0 байт, навесить на неё атрибут "сжатый", и уже потом в него писать распаковываемые данные этого файла.
    Всё просто. Хотя и требует проверки этих двух условий.
     
    Добавлено:

    Цитата:
    может быть разное поведение на HDD и SSD.  

    Пока не вижу ни одной рациональной причины для такой разницы.

    Всего записей: 16755 | Зарегистр. 04-11-2010 | Отправлено: 15:24 14-02-2024
    uShell

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    не продолжит - т.к. получит ответ о невозможности записи без объяснения причин

    Как я представляю, распаковка сжатого файла делается в три вызова: CreateFile (собственно, создать файл), WriteFile (записать данные) и DeviceIoControl (установить сжатие); последние два вызова предлагается поменять местами. Если сжатие запрещено, обломается DeviceIoControl, но создание и запись файла должны пройти без проблем (если только архиватор не отменит всю цепочку из-за одной ошибки). Разве не так?
     

    Цитата:
    Если на папке атрибут "сжатый" уже есть, тогда не надо делать ничего вообще

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

    Всего записей: 1015 | Зарегистр. 12-06-2019 | Отправлено: 16:35 14-02-2024
    Pasha_ZZZ



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    По мне так всякая самодеятельность при распаковке из архивов не нужна. И не нужно это дурацкое сохранение атрибута Сжатый. Пусть система разбирается, пусть зависит от папки. А то можно получить винегрет из сжатых и нет.

    Всего записей: 12404 | Зарегистр. 11-03-2002 | Отправлено: 16:49 14-02-2024
    codecs



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
     (если только архиватор не отменит всю цепочку из-за одной ошибки). Разве не так?  

    именно - архиватор отменит всё ибо не будет анализировать в каком именно месте цепочки произошла ошибка - для этого ему ИИ еще не завезли

    Всего записей: 2014 | Зарегистр. 22-07-2003 | Отправлено: 17:28 14-02-2024
    uShell

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    архиватор отменит всё ибо не будет анализировать в каком именно месте цепочки произошла ошибка

    Запущенный с ключом -slp, при отсутствии привилегий 7-Zip не отменяет всю операцию, а работает с маленькими страницами. Никто не мешает сделать то же самое для атрибута Compressed - было бы желание программиста. Про имеющуюся реализацию в WinRAR ничего утверждать не буду, не проверял.

    Всего записей: 1015 | Зарегистр. 12-06-2019 | Отправлено: 17:35 14-02-2024
    Pasha_ZZZ



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Нормальный архиватор должен работать с архивируемыми объектами, файлами и папками. И должен забивать на виртуальную шнягу типа сжатых файлов, которые типа прозрачно распаковываются и сжимаются.
    Есть же еще другие ос, как в них себя вести с этой шляпой?

    Всего записей: 12404 | Зарегистр. 11-03-2002 | Отправлено: 17:38 14-02-2024
    lelik007



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pasha_ZZZ
    Паша, оно по умолчанию отключено, не все знают, что вообще есть, а кто знает, еще подумает использовать ли. С другой стороны, зря вообще эта опция есть, это не дело архиватора, а дело системы и пользователей, которые про compact много знают. Я бы вообще убрал. Это лучше в 7-zip делать, а что код то открытый, 1-2 нарисовали, кому нужно, все функции сразу есть.
    ---
    Хотя до сих пор не пойму, как открытый формат и открытый исходный код на открытой ОС от этого помогают?
    http://forum.ru-board.com/topic.cgi?forum=5&topic=50870&start=1420#16
    При этом los вполне способен себе собрать что нибудь, там либо в справке ошибка, либо в программе ошибка, но оно все очень открытое, поправит себе как-нибудь.

    Всего записей: 2770 | Зарегистр. 13-10-2006 | Отправлено: 19:57 14-02-2024 | Исправлено: lelik007, 21:37 14-02-2024
    codecs



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Есть же еще другие ос, как в них себя вести с этой шляпой?

    встроенны в архиватор ИИ должен всё проанализировать и принять решение

    Цитата:
     код то открытый, 1-2 нарисовали, кому нужно

    те упоротые, которым это нужно, могут взять готовый код из innosetup - там эта фича есть

    Всего записей: 2014 | Зарегистр. 22-07-2003 | Отправлено: 20:35 14-02-2024
    insorg



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pasha_ZZZ

    Цитата:
    По мне так всякая самодеятельность при распаковке из архивов не нужна. И не нужно это дурацкое сохранение атрибута Сжатый. Пусть система разбирается, пусть зависит от папки. А то можно получить винегрет из сжатых и нет.

    Ошибочное мнение - считать, что если тебе не нужно, значит это не нужно всем.
    Во-первых, никто не говорит и не подразумевает, чтобы такое поведение отрабатывалось по умолчанию! Как минимум, это было бы странно и ломало имеющийся опыт.
    Во-вторых, возможность восстановления упаковываемых данных в максимально приближённый к исходному вид - это всегда полезно и нужно. Возможно, не в каждом отдельно взятом случае, но нужно.
    У тебя же не вызывает вопросов хранение иных атрибутов файла, даты, времени, прав доступа, ntfs потоков и тому подобного? С чего вдруг должен вызывать подобные вопросы очередной аналогичный ntfs атрибут, чтобы разводить такую панику... Неведомо.

    Всего записей: 16755 | Зарегистр. 04-11-2010 | Отправлено: 04:10 15-02-2024
    Pasha_ZZZ



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    insorg
    Потому что остальные атрибуты ими и являются и никак не затрагивают данные. Просто галочки.
    А раз уж великие нтфс-сжимальщики настолько альтернативно одаренные - то могут распаковать свое добро в папку с включенным сжатием и не ныть.

    Всего записей: 12404 | Зарегистр. 11-03-2002 | Отправлено: 04:32 15-02-2024
    insorg



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pasha_ZZZ
    Так тут - та же история. Реальные полезные данные тоже никуда не деваются и на затрагиваются.
    Впрочем, это не WinRAR, где часть уже сделана, потому там и имеет смысл доводить это до ума. Здесь - не было и "начального" вараинта с хранением обычного "сжатый".

    Всего записей: 16755 | Зарегистр. 04-11-2010 | Отправлено: 05:41 15-02-2024
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81

    Компьютерный форум Ru.Board » Компьютеры » Программы » 7-Zip | 7z | 7Zip (часть 4)


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru