2010-06-30 6 views
0

У меня есть байтовые массивы, размер которых может составлять несколько десятков мегабайт. Такие большие массивы не являются счастливыми существами, особенно когда у вас их много. Поэтому я хотел бы сжать их, поэтому с ними легче справиться. Они хорошо сжимаются, обычно соотношение 3: 1 с DotNetZip установлено на BestSpeed.Как сделать сжатый дифференциальный архив в .NET?

Данные в массивах могут быть почти одинаковыми. С учетом этого я надеялся найти способ программно сжать массивы по-разному, подобно управлению версиями или программному обеспечению для резервного копирования. Таким образом, если у меня есть три массива размером 30 МБ, которые отличаются только в разреженных местах, мой zip-файл будет ближе к 10 МБ вместо 30.

Я пробовал много запросов в google и stackoverflow с языком, как сжатый, архивирование, резервное копирование, diff, diff ... ни один из моих условий не приносит ничего полезного. Что я должен искать?

ответ

0

Возможно, вам захочется посмотреть, как работает протокол rsync в Unix. Он по существу вычисляет различия между двумя файлами и приложениями, которые создают сжатую дельта, используемую для вычисления изменений.

Возможно, вы сможете адаптировать это к тому, что вы пытаетесь сделать.