Показать полную графическую версию : [решено] просмотр файла в архиве без распаковки архива
Здравствуйте!
На большом архиве 7z заметил, что для просмотра файла в нём (winrar, 7zip), начинается распаковка других файлов в этом архиве (пока не знаю всех тонкостей процесса распаковки, но похоже, что распаковываются не все файлы архива).
Это достаточно неудобно, так как для просмотра одного маленького файла в большом архиве приходится долго ждать (можно, конечно, вынести файл из архива, а потом открыть, но интересует именно открытие файла из самого архива).
Есть ли способ сделать так, чтобы при просмотра файла в архиве, распаковки других файлов не происходило, то есть распаковывался только один этот файл?
Спасибо!
Petya V4sechkin
19-06-2014, 08:18
На большом архиве 7z заметил, что для просмотра файла в нём (winrar, 7zip), начинается распаковка других файлов в этом архиве
Это особенность непрерывных архивов (http://ru.wikipedia.org/wiki/Непрерывный_архив) (solid archive).
сделать так, чтобы при просмотра файла в архиве, распаковки других файлов не происходило
Перепаковать, не используя опцию "непрерывный архив".
Перепаковать, не используя опцию "непрерывный архив". »
jah, Угу. Но не забывая, что размер архива при этом увеличится.
SergAS70
19-06-2014, 12:02
jah, чем смотрите? В тотал командоре не пробывали?
SergAS70, без разницы чем смотреть, если это solid-архив.
Это особенность непрерывных архивов (solid archive). »
Перепаковать, не используя опцию "непрерывный архив". »
спасибо, почти всё встало на свои места
почти, так как остался такой момент: как бы точно сориентироваться какой из форматов архива - непрерывный?
так скажем, "сочной" информации не встретилось
из того, что встретилось
http://www.7-zip.org/7z.html
The main features of 7z format:
Open architecture
High compression ratio
Strong AES-256 encryption
Ability of using any compression, conversion or encryption method
Supporting files with sizes up to 16000000000 GB
Unicode file names
Solid compressing
Archive headers compressing
причём, в русскоязычной версии сайта, такой вывод сделать неочевидно
http://7-zip.org.ua/ru/7z.html
Основные преимущества формата 7z:
Открытая архитектура
Высокий коэффициент сжатия
Шифрование AES-256
Возможность выбора любого метода сжатия, конверсии и шифрования
Поддержка файлов с размером до 16000000000 GB
Поддержка файлов с именами в формате юникод
Сильная компрессия
Сжатие заголовков архива
хотя алгоритмы непрерывного архивирования обеспечивают большую степень сжатия, где та грань степени сжатия, которая отличит сильнее сжатый архив на предмет его непрерывности
возможно не точно:
zip, как я понял не непрерывный
rar может быть как непрерывным, так и не непрерывным (сориентировался по тому, что в winrar можно ставить/не ставить галочку Create solid archive (Создать непрерывный архив))
в целом, на данный момент, я так понимаю, нужно досконально изучить метод сжатия, после чего возможно удастся сделать вывод о том, непрерывный архив получится в итоге или нет
в целом, на данный момент, я так понимаю, нужно досконально изучить метод сжатия, после чего возможно удастся сделать вывод о том, непрерывный архив получится в итоге или нет »
Непрерывный архив не имеет отношения к методам сжатия. Это независимая опция.
Он получается когда все упаковываемые файлы рассматриваются не раздельно, а как непрерывная цепочка байт, т.е. при упаковке последующих файлов активно используется уже упакованная информация. И, в общих чертах, если в обычном архиве для упаковки двух одинаковых файлов потребуется двойное место, то при упаковке их в solid-архив второй файл упаковываться не будет, а в архив будет вставлена ссылка типа "То же самое, что с байта такого-то по байт такой-то в уже имеющейся части".
Соответственно если архив попорчен, то из непрерывного архива можно извлечь информацию только до места сбоя, в то время как в обычном архиве можно было бы извлечь абсолютно всё кроме того файла, на который пришёлся сбой.
Непрерывный архив не имеет отношения к методам сжатия. Это независимая опция.
Он получается когда все упаковываемые файлы рассматриваются не раздельно, а как непрерывная цепочка байт, т.е. при упаковке последующих файлов активно используется уже упакованная информация. И, в общих чертах, если в обычном архиве для упаковки двух одинаковых файлов потребуется двойное место, то при упаковке их в solid-архив второй файл упаковываться не будет, а в архив будет вставлена ссылка типа "То же самое, что с байта такого-то по байт такой-то в уже имеющейся части".
Соответственно если архив попорчен, то из непрерывного архива можно извлечь информацию только до места сбоя, в то время как в обычном архиве можно было бы извлечь абсолютно всё кроме того файла, на который пришёлся сбой. »
спасибо за пояснение, действительно, я не так себе это представлял до этого
Если, исходя из вышеизложенного, я теперь правильно сделал вывод, то
- для не непрерывных архивов применяется алгоритм сжатия для каждого файла, после чего эти сжатые файлы объединяются в архив
- для непрерывных архивов все файлы выстраиваются в последовательность байт, к которой уже применяется алгоритм сжатия
Также сделал вывод, что непрерывность архива определяется исключительно ПО, которое делает архивацию, то есть потенциально любой алгоритм сжатия можно использовать как для получения непрерывных, так и не непрерывных архивов,
и существующее ПО типа winrar и 7zip определяет как это делать на своё усмотрение:
например,
winrar архивы rar и rar5 позволяет сделать как непрерывными, так и не непрерывными, zip - только не непрерывными
7zip не совсем понятно как делает, но похоже, что zip делает не непрерывным, 7z - непрерывным
то есть потенциально любой алгоритм сжатия можно использовать как для получения непрерывных … архивов, »
Теоретически — да. Практически всё упирается в основное приложение, породившее тот или иной формат: WinZip (а ранее PKZIP) для zip-архивов, WinRAR/RAR — для rar-архивов. Здесь всё очень тонко упирается в формат данных и особенно в лицензирование. Собственно, формат zip и был порождён грызнёй между SEA и PKZIP вокруг формата PKARC и «трошки позаимствованным» (а на самом деле — полностью «слямзенным» и слегка оптимизированным) кодом из PKARC для своего архиватора. Потому на данный момент можно ли делать в том или ином формате solid-архивы определяется самим используемым форматом.
и существующее ПО типа winrar и 7zip определяет как это делать на своё усмотрение: »
Нет. На Ваше усмотрение.
Если, исходя из вышеизложенного, я теперь правильно сделал вывод, то »
Если не придираться к формулировкам -- то смысл именно такой.
Метод (solid или нет), если архиватор позволяет и то и то, выбираете вы сами.
потенциально любой алгоритм сжатия можно использовать как для получения непрерывных, так и не непрерывных архивов »
Потенциально -- да.
zip - только не непрерывными »
Я не смотрел последние версии WinZIP.
7zip не совсем понятно как делает »
В настройках выбора не нашёл, в описании тоже, в настройках плагина для TotalCmd -- тоже.
Сжал exe-файл размером 225 877 байт в архив .7z, а затем его же вместе с его копией, дав ей другое имя.
Результат: 158 462 байта и 159 674 байта соответственно. Разница 1212 байт, менее 1% от сжатого первого файла.
Вывод: архив непрерывный (а часть разницы ушла на хранение чисто второго имени).
PS
Уточнение по 7z в следующей реплике, "по вновь открывшимся обстоятельствам".
Потому на данный момент можно ли делать в том или ином формате solid-архивы определяется самим используемым форматом. »
В документации к очень широко распространённому в древности архиватору ARJ была рекомендация по уменьшению размера архива: упаковать все файлы с опцией без сжатия -m0 (т.е. фактически не упаковывать, а только сшить все архивируемые файлы в один выходной файл), а затем уже применить к полученному архиву опцию максимального сжатия -m5. Т.е. непрерывный архив создавался, но создавался в два шага.
В настройках выбора не нашёл, в описании тоже, »
Solid Block size
Specifies the size of a solid block. You can also disable solid mode. In solid mode all files will be compressed as continuous data blocks. Usually compressing to a solid archive improves the compression ratio. You can use this option only for 7z archives. The updating of solid .7z archives can be slow, since it can require some recompression.
http://i.imgur.com/eHiQB3Y.png
Iska, oops, не добрался...
Теперь и у плагина для TotalCmd нашёл:
http://mwz-ru.homeserver.com/main/tests/7zip1.gif
Iska, mwz, спасибо за ценную информацию
И, в общих чертах, если в обычном архиве для упаковки двух одинаковых файлов потребуется двойное место, то при упаковке их в solid-архив второй файл упаковываться не будет, а в архив будет вставлена ссылка типа "То же самое, что с байта такого-то по байт такой-то в уже имеющейся части". »
В настройках выбора не нашёл, в описании тоже, в настройках плагина для TotalCmd -- тоже.
Сжал exe-файл размером 225 877 байт в архив .7z, а затем его же вместе с его копией, дав ей другое имя.
Результат: 158 462 байта и 159 674 байта соответственно. Разница 1212 байт, менее 1% от сжатого первого файла.
Вывод: архив непрерывный (а часть разницы ушла на хранение чисто второго имени). »
метод проверки понял
сам бы наверное никогда не догадался, но после всего вышеописанного интуитивно наверное можно было бы дойти до того, чтобы искать непрерывность в 7zip среди размеров блока
хотя не совсем понятно почему в англоязычном варианте пункт обозначен как non-solid (если слово solid - сплошной, цельный, непрерывный, ..., то non-solid вроде бы как его противоположность)
В документации к очень широко распространённому в древности архиватору ARJ была рекомендация по уменьшению размера архива: упаковать все файлы с опцией без сжатия -m0 (т.е. фактически не упаковывать, а только сшить все архивируемые файлы в один выходной файл), а затем уже применить к полученному архиву опцию максимального сжатия -m5. Т.е. непрерывный архив создавался, но создавался в два шага. »
До сих пор встречаются архивы tar.gz, смысл которых тоже похож. Tar не является собственно архивом, просто файлы слитые в один, и GZip, который неплохо сжимает, но может сжать только один файл.
хотя не совсем понятно почему в англоязычном варианте пункт обозначен как non-solid (если слово solid - сплошной, цельный, непрерывный, ..., то non-solid вроде бы как его противоположность) »
тут наверное так: судя по тому, что 7z-архив без выставления "Непрерывный" был непрерывным, опция "Непрерывный" делает его как раз наоборот не непрерывным, то есть в русскоязычной версии неправильно переведено, эта опция non-solid должна была звучать наподобие "Не непрерывный"
проверка по методу mwz это подтвердила
кстати непрерывности также можно добиться выставив размер блока больше, чем суммарный размер файлов, что вполне логично
хотя не совсем понятно почему в англоязычном варианте пункт обозначен как non-solid »
При выборе этого пункта создаётся обычный, не solid, архив.
Остальные пункты в выпавшем списке -- это максимальный размер уже упакованного блока, в пределах которого при создании непрерывного архива ищется соответствие между упаковываемым файлом и уже упакованными. И если одинаковые файлы отстоят друг от друга (в порядке следования при упаковке) на бОльшее расстояние, то второй файл будет упаковываться вновь, без оглядки на историю. Чем больше выбранный размер -- тем плотнее получаемый архив, но тем большее время затрачивается на его создание из-за необходимости хранить и проверять текущую историю упаковки.
"Одинаковый файл" -- это частный, наиболее удобный для понимания случай. В реалии же многие файлы содержат абсолютно одинаковые, иногда достаточно длинные последовательности байт, на которые это тоже распространяется.
Ну и ещё дополнение.
Когда появился первый RAR с возможностью создания непрерывных архивов, то я обратил внимание, что при упаковке групп файлов он предварительно сортирует упаковываемые файлы по типам. При этом повышается вероятность того, что файлы с одинаковыми кусками кодов окажутся ближе друг к другу и расчётные работы при создании непрерывного архива уменьшатся, а плотность увеличится.
архивы tar.gz, смысл которых тоже похож »
Ага, это я тоже помню -- но ARJ для меня ближе, почему и дал как пример. :)
Ещё раз всем спасибо, добротная тема получилась
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.