|   |   | 
| 
 | Где скачать unzip.exe? | ☑ | ||
|---|---|---|---|---|
| 0
    
        ivanovpetr79 17.02.22✎ 19:56 | 
        Для решения нужной мне задачи — распаковка файлов по маске из ZIP архива в Groovy/Java самым эффективным решением оказалось вызов unzip.exe, являющийся частью проекта 
 https://en.wikipedia.org/wiki/Info-ZIP На моей машине эта утилита является частью клиентской инсталляции Oracle. Сам проект Info-ZIP заброшен и не развивается с 2009го года. Где в интернетах скачать готовые билды для Windows? Есть ли более современные реализации или форки? | |||
| 1
    
        pechkin 17.02.22✎ 19:58 | 
        У жава на виндах работает?     | |||
| 2
    
        ДенисЧ 17.02.22✎ 20:00 | 
        unrar прекрасно с зипами справляется.     | |||
| 3
    
        ivanovpetr79 17.02.22✎ 20:03 | 
        (1) - джава работает и на утюгах, и в холодильниках с телевизорами     | |||
| 4
    
        МихаилМ 17.02.22✎ 20:13 | ||||
| 5
    
        ДедМорроз 17.02.22✎ 20:20 | 
        Вообще-то,если у вас windows,то он умеет распаковывать такие файлы через проводник и Com-серверы.
 А в linux,насколько я помню,она встроенная. Можно скачать демо-версию WinZip или WinRar там прилагается распаковщик архивов,причем он,в отличие от самой программы,бесплатный. | |||
| 6
    
        ДедМорроз 17.02.22✎ 20:22 | 
        https://support.microsoft.com/en-us/windows/zip-and-unzip-files-8d28fa72-f2f9-712f-67df-f80cf89fd4e5 вот что говорит Microsoft     | |||
| 7
    
        ДедМорроз 17.02.22✎ 20:23 | 
        Ну или взять бесплатную программу
 https://www.7-zip.org/ | |||
| 8
    
        vladmenleo 18.02.22✎ 05:48 | 
        (0) В (7) самое верное решение, севен зип наше фсе     | |||
| 9
    
        Casey1984 18.02.22✎ 06:26 | 
        (8) +     | |||
| 10
    
        ivanovpetr79 18.02.22✎ 11:45 | 
        (7) (8) (9) Там самое неверное решение. 
 Во-первых, оно не соответствует заданному вопросу. Во-вторых, оно увеличивает бюджет на проект. То есть готовый скрипт на Groovy ты должен модифицировать под другой архиватор, преимущества которого для решения конкретной задачи под вопросом. Самое верное решение в (4), да и то с одним "но": там древняя сборка 2005го года, которую легко найти в сети (является частью Gnu for Windows). Последней сборкой является 2009 года, Которую я и ищу. В (6) какой-то бред. Это информация для пользователей, а не программистов | |||
| 11
    
        ivanovpetr79 18.02.22✎ 11:51 | 
        Кроме того, вы не задавались вопросом, почему Oracle включил в поставку своего мейнстрим продукта 2021го года кроссплатформенный порт PKUNZIP, который начинался в 1989м году?     | |||
| 12
    
        fisher 18.02.22✎ 12:02 | 
        А что не так с родными джавовыми либами?     | |||
| 13
    
        fisher 18.02.22✎ 12:13 | 
        Вот вроде промер несложного многопоточного анзиппинга: https://stackoverflow.com/questions/51920911/how-can-i-unzip-huge-folder-with-multithreading-with-java-preferred-java8     | |||
| 14
    
        ivanovpetr79 18.02.22✎ 12:59 | 
        (12) - они тормозят, причем очень сильно. В десятки раз, по сравнению даже со стандартной распаковкой Windows. 
 Кроме того, в "самой лучшей" библиотеке zip4j до сих пор не реализована распаковка нескольких файлов по маске. В принципе это тривиальная задача из мира Devops и тест на понимание его базовых принципов: скриптовый язык (любой - Groovy, Python, PS, Batch Script) - это клей, которым ты скрепляешь вызовы готовых оптимизированных под задачу утилит. Встроенными возможностями языка ты не пользуешься. | |||
| 15
    
        fisher 18.02.22✎ 13:03 | 
        (14) "Тормоза" скорее всего из-за однопоточной работы. В описании "самой лучшей" библиотеки zip4j я не вижу декларации мультипоточности.     | |||
| 16
    
        Casey1984 18.02.22✎ 13:05 | 
        (10) Спасибо, садись, два.     | |||
| 17
    
        fisher 18.02.22✎ 13:05 | 
        А для быстрого разархивирования мультипоточность критически важна. Дополнительные ядра увеличивают скорость разархивации почти пропорционально.     | |||
| 18
    
        fisher 18.02.22✎ 13:11 | 
        Но если чистый девопс, то ессно проще найти подходящую готовую утилиту.     | |||
| 19
    
        ivanovpetr79 18.02.22✎ 13:14 | 
        (17) какой смысл в многопоточности, если нужно по маске распаковать максимум 10 файлов?     | |||
| 20
    
        ivanovpetr79 18.02.22✎ 13:15 | 
        (16) - эту оценку поставь разрабам Оракла     | |||
| 21
    
        fisher 18.02.22✎ 13:19 | 
        (19) Какая разница сколько файлов? Каждый файл бьется на чанки, которые разархивируются в разных потоках.
 И если ты девопс, то не понимаю твоих проблем. Стандартный линуксовый tar умеет анзиппить в несколько потоков и с какими хочешь опциями. И в новых виндах он теперь тоже есть, кажись. | |||
| 22
    
        fisher 18.02.22✎ 13:26 | 
        (19) Если не веришь - просто попробуй разархивировать любой большой файл и посмотри на загрузку ядер. Мультипоточность - это настолько корневая фишка современного архиватора, что в 7-zip даже cpu-бенчмарк встроен, который все ядра загружает.     | |||
| 23
    
        ivanovpetr79 20.02.22✎ 14:53 | 
        (21)
 >Стандартный линуксовый tar умеет анзиппить в несколько потоков >И в новых виндах он теперь тоже есть, кажись. Но tar не поддерживает распаковку ZIP архивов. Для работы с ними в Unix системах испокон веков использовалась отдельная утилита unzip, которая является предметом обсуждения данного треда. (17) А для быстрого разархивирования мультипоточность критически важна. Для быстрого разархивирования *большого количества файлов* или очень огромных файлов. Кроме того, поддержка многопоточной распаковки ZIP не реализована даже в "самом лучшем архиваторе" 7-Zip: 7-zip supports multithreading decompression only for bzip2 - это ответ самого разработчика, Игоря Павлова. Какой смысл обсуждать преимущества того, что не существует на практике? >Какая разница сколько файлов? Каждый файл бьется на чанки, которые разархивируются в разных потоках. Но это не поддерживается форматом ZIP. Иначе бы было давно реализовано Игорем. (18) эта утилита уже давно найдена и ее название в названии темы. | |||
| 24
    
        Смотрящий 20.02.22✎ 15:24 | 
        (23) Винда видит зип как папку. Давно бы уже разорался как открывать/создавать читать/писать в такие папки     | |||
| 25
    
        rphosts 20.02.22✎ 15:25 | 
        7-Zip не спасёт отца украинской демократии?     | |||
| 26
    
        ivanovpetr79 20.02.22✎ 15:51 | 
        (24) и дальше? Этот функционал Microsoft никогда не предоставлял в виде Command Line API.
 (25) Что в 7-Zip такого особенного, чтобы ради него нужно было переписывать готовый код на Groovy ? В тот же самый вопрос касается unrar. Немного гугла и ты получаешь информации, что там нет имплементации многопоточной работы с ZIP по понятным причинам. | |||
| 27
    
        ДедМорроз 21.02.22✎ 00:59 | 
        Если на чанки,то многопоточность будет,а если вы ест архив-одмн чанк-то нет.     | |||
| 28
    
        DEVIce 21.02.22✎ 05:29 | 
        (26) Там поди переписывать в этом готовом коде аж на месяц работы, да? Сдается мне там работы на час.     | |||
| 29
    
        ДедМорроз 21.02.22✎ 07:03 | 
        https://stackoverflow.com/questions/1021557/how-to-unzip-a-file-using-the-command-line
 Здесь два примера на PowerShell и VbScript для тех,кто не верит,что в windows без установки чего-либо можно работать с zip-файлами из командной строки. | |||
| 30
    
        ivanovpetr79 21.02.22✎ 12:24 | 
        (28) а потом заказчику даёшь работы на полгода или даже год, пока он добьется разрешения на unrar или 7zip, которую ты притащил как "самое лучшее" решение. Он тебе просто не заплатит за такое "решение".
 (29) кстати решение в https://stackoverflow.com/a/1021592/444079 даже лучше с точки зрения уменьшения зависимостей. Утилита jar является частью JDK, она по умолчанию есть в любом банке в списке разрешенного ПО. | |||
| 31
    
        fisher 21.02.22✎ 12:28 | 
        (23) > Но tar не поддерживает распаковку ZIP архивов
 Ты прав. Он распаковывает только "затаренные" архивы... И в части многопоточности ты тоже прав. В общем случае 7-zip параллелит не чанки, а файлы... Но ведь даже если тот же десяток файлов, как ты говоришь - то все равно будет ускорение в разы, разве нет? ЗЫ. Стало интересно, что в java делает parallel() для потока зип-файла по той ссылке что я выше кидал. Теперь подозреваю, что тоже по файлам бъет, раз по чанкам это не так просто оказывается (для обычного зипа). | |||
| 32
    
        Смотрящий 21.02.22✎ 12:28 | 
        (30) Сгущаешь краски. Если у заказчика горит и он должен добиваться какого то разрешения, то и денег тебе зачехлят, и решение получат.     | |||
| 33
    
        Garykom гуру 21.02.22✎ 12:30 | ||||
| 34
    
        Garykom гуру 21.02.22✎ 12:32 | 
        (33)+ надеюсь у вас там джава 8 или свежее     | |||
| 35
    
        fisher 21.02.22✎ 12:35 | 
        (32) Не сгущает. Контроль безопасности ПО заводят не для того, чтобы в пол-пинка можно было любую хрень протащить.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |