Как стать автором
Обновить

Комментарии 48

Все чаще то чувство, когда начинаешь читать интересные технические подробности, а тут — «хоба» и статья закончилась…
Только недавно столкнулся, что Windows Explorer оказался неспособен открыть ZIP-файл с паролем длиной 80 символов (не спрашивайте, откуда он такой взялся :)). 7-zip справился без проблем.

не спрашивайте, откуда он такой взялся

Позвольте не позволить !

Ибо проблема возникновения таких девиаций архиинтересна :)

Файл — maintenance report (логи, дампы, и т.п.) одной железки, полученный от пользователя для диагностики проблемы. А в качестве пароля там по умолчанию используется длинный-длинный хэш, честно говоря, фиг знает, зачем так сделали :)

Ещё одна протёкшая абстракция небось: какая-то генерилка генерит по 80 символов на строку, т.к. "в терминале 80 знакомест", а там это из-за 80 колонок на перфокартах

Почему? Зато пароль в 80 символов вполне себе валиден (1) и секурен (2)

Далеко не факт. Смотреть реализации нужно что дальше делается с паролем. Если пароль «превращается» в хеш или же участвует «в каком то там» условном хэшировании, то могут быть коллизии. Вероятность весьма мала, но есть.
Иначе говоря ваш наисложнейший пароль с последующим хешем X == наипростейший пароль «вася» с таким же хешем X.
Вывод: по идее все пароли надо прогонять через известные словари и базы, и только после этого применять, а иначе от кажущейся сложности толку как то маловато будет, если оно ломается на раздва паморде.
В общем надо глядеть что как. То «присолить» забывают, то ещё что-то. Обычное дело…

Интересно, а под винду существуют современные UI-less архиваторы, которые бы в виде shell extension подменяли встроенную имплементацию для .zip и добавляли поддержку .rar/.7z?

P.S. Не очень понятно, какая именно абстракция в данном случае протекла и как. Выглядит как... особенность конкретной имплементации.

Существуют. Одно из них — tc4shell. И tc4shell именно это и делает — подменяет встроенную имплементацию для .zip и добавляет поддержку .rar/.7z. Но он платный.
Абстракция – «zip-файл как папка». А протекла – потому что автор нажал Ctrl-X, и понеслось :)
Есть, помимо уже упомянутого tc4shell, более радикальный способ с заменой Explorer — Directory Opus, лично я после него никакой другой менеджер не признаю.

А в чем фишка? Выглядит как будто explorer напал на total commander и совершил с ним противоправные действия. Чем отличается от первого, в целом, понятно, хотя, все равно было бы интересно услышать комментарий. А от второго?

Довольно сложно рассказать. На Total Commander если только один из вариантов списков похож. Если максимально коротко — то это всё, что может понадобиться + scripting, если нужно что-то еще. У него краткое (на сколько это возможно) руководство на 1300+ страниц, его пробовать надо, не торопясь (видимо поэтому пробный период 60 дней), а потом с жабой договориваться (дорогой он, но бывают скидки, в основном на Рождество).
Вот да, основная претензия тут не к реализации ZipFolders, а к тому, что это только Zip. ;-)

К вопросу о реализации. У меня была прямо противоположная ситуация: dedicated-архиватор (WinRAR 5.x) распаковать zip-файл не мог (детали не помню, но вроде часть папок была пустой после извлечения), а встроенный в «Семёрку» — распаковывал. Причём, более 1 раза такое было. Я, к сожалению, не вспомню, откуда эти файлы брались (в следующий раз надо будет отрефлексировать). Сначала я грешил на то, что файл битый, а потом догадался нажать ПКМ, Open with -> Windows Explorer. Так что, ещё вопрос, у кого и что протекает.

Ахах. Сталкивался с такой же проблемой (ага, закон Уйского в действии). Не предал тогда значения и воспользовался 7z.

Поддержка zip в венде настолько убогая, что проще считать, что её нет и использовать сторонние решения. Когда-нибудь и майкрософт родит свое кривое подобие fuse.

Это в большинстве случаев работает для обычного пользователя, так что, это скорее работает, чем не работает. Собственно в этом и суть начала поста.

Что-то из штатного набора по принципу — лучше, чем совсем ничего. Сойдет для распаковки архивов с драйверами и хорошо, далее всё ручками на свой вкус и кошелёк, если СПО не удовлетворяет.
Поддержка ZIP в Windows нужна для того, чтобы можно было распаковать портативную версию 7zip.
ZIP, IE… Давайте сразу скажем, что винда нужна для того, чтобы выбрать и скачать какую-то другую ОС.
В идеальном мире чистых абстракций с бесконечной производительностью и нулевыми задержками это работает. Так же как и идея составных документов, когда в условный вордовский документ на локальном компьютере вставлены объекты условных Excel, PowerPoint, etc., находящиеся на других компьютерах, разбросанных по всему миру. В идеальном мире это работает. В реальном — применимо, если вы мазохист (ну или поставлены в такие условия извне). И это не единичные примеры.

С другой стороны, всегда надо думать, что ты собираешься сделать. Разархивировать файлы через Ctrl-X/Ctrl-P — явно не лучшая идея, если вы не тестировщик.

С третьей стороны, Windows9x (да и не только 9x) позиционировались как «ОС для домохозяек». А эта категория пользователей не будет задумываться, чем отличается zip-архив от дисковой файловой системы. Поскольку не знает, что такое «zip-архив» и «файловая система». Тут однозначно прокол при тестировании.
Домохозяйки вообще не будут заморачиваться с Ctrl-X/Ctrl-V. Они либо перетащат файлы мышкой, либо, что более вероятно, запустят .EXE прямо из архива.

Надо заметить, что это ещё и проблема ZIP-формата, в который десятилетиями добавляют новые фичи, не очень-то при этом заботясь о совместимости.

В теории можно было бы поправить архиватор Винды по слитым исходникам ХР, но на практике вряд ли

или контрибутить в Фонд ReactOS

Вот отличный пример того, зачем нужны живые тестеры.
Мне бы в голову никогда не пришло сделать Ctrl+A Ctrl+X в архиве, это же очевидно жесть бессмысленная. А простой пользователь вполне может. Как и тестер, который решил специально посмотреть, что же будет (как и автор статьи, не будет же человек, знающий, что такое process monitor, делать такую жесть просто так ;).

Интересно, а что получится в итоге, если вырезать файлы из архива? Пустой архив?
Ну, технически, наверное, возможен архив, состоящий из одного заголовка и с payload'ом нулевой длины. Не очень удивлюсь, если получится анти-zip-бомба, роняющая некоторые архиваторы из-за деления на ноль при расчете compress ratio ;)

Он и практически вполне возможен - та же винда по правой кнопке в папке в том числе предлагает создать ZIP

Да, пустой архив размером 22 байта, такое же поведение и у плагина в Far, а вот Winrar удаляет сам архив, и для zip и для своего формата

Тут ещё особый (редкий?) тип архива нужен, как я понял.

Автор текста сетует, дескать можно было бы реализовать эффективно его кейс. Но это "очень странный кейс для очень странного файла". Если так делать, исходники становятся непонятными и сложными для сопровождения. Обычно все-таки эффективно реализуются основные кейсы, а странные кейсы при этом "скажите спасибо, что вообще работают, а не приводят к ошибке".

"скажите спасибо, что вообще работают, а не приводят к ошибке".

в данном случае "странный кейс" не работает. Нельзя назвать текущее положение дел работой, когда распаковка зависает...

Если операция «вырезать файл из архива» реализована криво — заблокировали бы через UI пункт «Cut».

Тут архив ещё "потоковый" нужен.

Осталось дождаться, когда Microsoft купит 7zip.

Скорее винрар или аинхип, 7зип FLOSS

Наконец хоть кто-то купит WinRAR.

А с чего вы взяли что винрар вообще продаётся/продавлся/будет продаваться?
И вы так пишете, как будто винрар это что-то плохое. А на самом деле по тестам винрар это лучший архиватор, ну потому что у него есть абсолютно всё. В том числе и отказоустойчивость. И вы меня извините, но архив без отказоустойчивости это по определению бесполезная шляпа какая-то, подумайте хотя бы раз, так сказать напрягите мозг.
И винрар никто не купит опять же по определению. Ну на это тоже нужно напрячь уже последние остатки мозгов. Не купят потому что он не ломается, а кому нужно то что не ломается?
Это была отсылка к популярной шутке про бесконечный триал у winrar
Ну у меня купленный на физлицо за собственные средства из зарплаты; вам точно ничего не жмёт говорить от лица всех?

Спасибо, не надо. Скайп до покупки была хорошая программа.

Скайп сейчас причесали, стал вполне приятный. Только уже ненужный на фоне конкурентов. В принципе, 7zip-у не помешало бы освежить дизайн в стиле UWP, а то он слегка застрял в нулевых. Так что Майкрософту на заметку.

Один раз столкнулся, что архив ZIP, созданный сторонним архиватором, нельзя было открыть встроенным в винду архиватором. Причем вроде даже это была "плавающая" ошибка — на одной системе оно открывалось, на другой нет. Пришлось архивировать все стандартными средствами для совместимости.

Было такое же, но на смартфоне. Встроенное приложение не могло разархивировать с верным паролем, а Windows — смог.

Скажите пожалуйста, а почему эта статья в хабе .net?

Там в первом абзаце автор что-то упомянул про свой опыт с дотнетом.

Ну кстати проблема не только с ZIP, не так давно решил переместить большое количество файлов, тоже решил не копировать их, а перемещать, в итоге после 10 минут понял что это не лучшее решение, поэтому сначала скопировал их, потом удалил старые, операция в среднем заняла буквально минуту. К сожалению обстоятельств не помню, но ничего особенного. Core 2 Quad если вдруг что.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.