169 похожих чатов

Есть ли дешевый способ узнать, сколько может занимать будущий zip

файл?

7 ответов

11 просмотров

Убрать операции работы с файлами у архиватора))

Просуммировать размер заголовков zip * количество файлов * 2, заголовков блоков (от количества файлов и их длины зависит) и самих блоков. Вот .zip без сжатия точно будет не больше этого. А со сжатием — ну как повезёт. Вот действительно — сжать в /dev/null и посмотреть.

楽園松本- Автор вопроса
s54820
Просуммировать размер заголовков zip * количество ...

Не хотел сжимать в нулл. Думал, какой-нибудь индикатор энтропии есть простой

楽園松本
Не хотел сжимать в нулл. Думал, какой-нибудь индик...

Без исполнения самого алгоритма сжатия, думаю, это невозможно. Алгоритм ведь не знает, какие именно байтики ты ему передашь, поэтому неизвестно, какой результат на выходе будет. Может, 1000 одинаковых байтов, а может 1000 максимально разных. Так что самый надёжный вариант - просто пропатчить архиватор (убрать операции работы с файлами), чтобы он тупо выполнял алгоритм, но никуда не писал, и выдаст тебе выходной размер (а с учётом, что работа с файлами пропатчена - это будет быстрее, чем запись в /dev/null).

楽園松本- Автор вопроса
КТ315
Без исполнения самого алгоритма сжатия, думаю, это...

Мне везде мерещатся предугадывательные алгоритмы. Надо подумать. Что-то вроде прочитать блок, проанализировать, прочитать другой блок, если они похожи, то ткнуть очень подальше. Если все блоки похожи, то скорее всего хорошо сожмётся.

楽園松本
Мне везде мерещатся предугадывательные алгоритмы. ...

Это будет пальцем в небо. Но если тебе этого достаточно...

楽園松本- Автор вопроса
КТ315
Это будет пальцем в небо. Но если тебе этого доста...

В известном смысле. Но это будет дешевле, чем сжимать 4 ТБ, а потом узнать, что сжалось плохо.

Похожие вопросы

Обсуждают сегодня

Коллеги, здравствуйте! А можно узнать ваше мнение относительно Wolfram Mathematica vs Julia? Просто у меня стоит выбор между тем, чтобы продолжить преподавать Wolfram Mathemat...
Илья Гаража
10
Обновленный chat тестили уже господа? Готовимся на заводы ? Простой проект на ларавель собирает за 1 ответ..
Jacov Borisov
14
кому не сложно распишите пожалуйста для какой цели тут вот эти скобки и в них пихается указатель?
Михаил Helper
15
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Или мне дублировать структуру с информацией о следующем потоке в адресное пространство текущего потока?
One
9
Серьезно? Вот прям так на глагне на первом экране?
Sasha Beep
8
Такс, блин, таки кто-то знает, каким образом работают макросы stdin/stdout/stderr? Я влез в stdio.h, там определения нет, отладил через асмокод - вызывается функция со странны...
The Bird of Hermes
18
Комрады, посоветуйте, куда копать? Стал прикручивать кастомизацию тем. В OnShow главной главной формы пытаюсь загрузить из файла настроек и применить тему (на скрине, как долж...
Ed Doc
13
в "главной форме" создаются "дочерние формы / копии главной" new_form := TForm1.Create(Application); new_form.blah_blah_blah обработчик, срабатывающий при изменении положени...
livontiy
6
OnShow один раз вызывается? или возможен Hide?
Iluha Companets
14
Карта сайта