как оценить размер архива до(без) его архивирования с помощью Vclzip

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Аватара пользователя
SergeyS
Сообщения: 196
Зарегистрирован: 21 ноя 2006, 17:12
Откуда: Хакасия, Абакан
Контактная информация:

namomelkor, так в чем проблема? архивируй, смотри что не влазит и говори "не влазит!", пусть указывает какие файлы не нужны... А если он убирает какой-то файл - то и ладно, ничего переархивировать не надо, всё уже в архиве. В любом случае архивация происходит всего один раз. Что ещё надо?
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

немного офф... а что за файлы заливаются что они такого размера???
Изображение
namomelkor
Сообщения: 230
Зарегистрирован: 31 авг 2006, 13:11

Игорь Акопян писал(а):немного офф... а что за файлы заливаются что они такого размера???
В архивы заличаются абсолютно любые файлы.
На фтп заливаютсяч эти архивы.
Аватара пользователя
SergeyS
Сообщения: 196
Зарегистрирован: 21 ноя 2006, 17:12
Откуда: Хакасия, Абакан
Контактная информация:

я так понимаю моё предыдущее объяснение было непонято :)
попробую объяснить на примере:
есть несколько файлов подлежащих складированию на ftp:
file1.exe
file2.dat
file3.mp3
file4.txt

сервер их архивирует в следующие файлы:
file1.exe -> file1.exe.zip
file2.dat -> file2.dat.zip
file3.mp3 -> file3.mp3.zip
file4.txt -> file4.txt.zip

подсчитываешь размер файлов и если он не влазит в установленный лимит сообщаешь об этом пользователю "Не влазит!!! Убери лишнее!!!"
Он к примеру убирает file3.mp3, ты прибиваешь file3.mp3.zip и опять проверяешь общий объем, если не влазит опять, то опять повторяешь итерацию, иначе складируешь остальные файлы на ftp:
file1.exe.zip
file2.dat.zip
file3.mp3.zip
file4.txt.zip

Как видишь архивация выполнялась всего один раз. Или я неправильно понял тебя?

блин, file3.mp3.zip мы же удалили, значит его складывать не надо :)
namomelkor
Сообщения: 230
Зарегистрирован: 31 авг 2006, 13:11

В принципе правильно но так можно поступить только с свободным местом на фтп. Но это не подходит к вопросу по свободному месту на диске на него всеравно нужно архивировать все сразу. Например
на фтп 2гига свободного места
у пользователя на винте два файла каждый после архивации занимает 1гиг и места на винте 1.5гиг в этом случае на фтп место есть но отправить их по твоей логике не получится т.к их нужно будет архивировать сразу оба не удаляя.

А мне такой вариант нужно предусмотреть )))
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

я конечно извиняюсь, но заливать на фтп по 2 гига....
ИМХО, хочешь сливать такие архивы - пакуй и жди, не влезло - исключай, пакуй и жди снова! Ждать до появления числодробилок, которые будут упаковывать быстрее ;)

В качестве идеи - можно поискать, существуют примерные оценки упаковываемости определённого содержимого (аудио/видео пакуется плохо) и выдавать очень примерный прогноз по содержимому...
Изображение
namomelkor
Сообщения: 230
Зарегистрирован: 31 авг 2006, 13:11

Человек просто будет платить за это деньги и он заплатив не сильно захочет как ты говоришь "пакуй и жди, не влезло - исключай, пакуй и жди снова"
Аватара пользователя
SergeyS
Сообщения: 196
Зарегистрирован: 21 ноя 2006, 17:12
Откуда: Хакасия, Абакан
Контактная информация:

если два файла пожатые занимают каждый по 1Гб, то как позволит их совместная архивация поместить полученный архив на 1.5Гб? Ведь выигрыш в сжатии многих файлов в один архив получается только в случае solid архива, а если мы меряем файлы гигабайтами, то раздельное пожатие 1Гб + 1Гб > 1.5Гб или совместное пожатие 2Гб > 1.5Гб ничего не меняет

Я чего-то не допонимаю
namomelkor
Сообщения: 230
Зарегистрирован: 31 авг 2006, 13:11

Я говорил не за один архив. Каждый файл в своем архиве. Но в твоем случае их нужно будет создавать оба без удаления а для этого не хватит места.
на фпт 2г на диске два файла(неважно какого размера) который после архивирования занимают по 1г а на диске свободно только 1.5г.

создали первый файл 1г на диске стало 0.5г
создаем второй файл на 1г не хватает места система матюкается. конец.

или же как я щас делаю

создали первый посчитали размер удалили
создали второй посчитали размер удалили
если места хватает то опять создали первый отослали удалили
создали второй отослали удалили.

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