Вы не можете оценить время. Это зависит от слишком большого количества параметров и может варьироваться от одной секунды до следующей. Заманчиво следить за выходом в потоке zip, но вы не можете догадываться о большом количестве сжатого файла. Так что это тоже не сработает.
Лучшим способом было бы просмотреть все файлы, которые вы собираетесь сжимать, суммировать их размеры и по мере того, как вы передаете данные в zip, перемещайте индикатор выполнения пропорционально. Я бы также предложил добавить счетчик, например 345/554 files
, так что у вас также есть представление о количестве файлов.
Если вам нужны более конкретные предложения, вам нужно поделиться каким-то кодом своей попытки.
рассчитать размер каталогов. – vahid