Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Какие настройки в коде 7z установить для ультра сжатия

16K
04 сентября 2007 года
o2_
11 / / 25.09.2006
Использую следующий код для сжатия файла с помощью 7zip алгоритма:

Код:
// C#
// xmlFile - MemoryStream создаётся и заполняется выше

using (FileStream packFile = new FileStream(dlg.FileName, FileMode.Create, FileAccess.Write, FileShare.Write))
                {

                    SevenZip.CoderPropID[] propIDs =
                    {
                    SevenZip.CoderPropID.DictionarySize,
                    SevenZip.CoderPropID.PosStateBits,
                    SevenZip.CoderPropID.LitContextBits,
                    SevenZip.CoderPropID.LitPosBits,
                    SevenZip.CoderPropID.Algorithm,
                    SevenZip.CoderPropID.NumFastBytes,
                    SevenZip.CoderPropID.MatchFinder,
                    SevenZip.CoderPropID.EndMarker
                    };

                    Int32 dictionary = 29;
                    Int32 posStateBits = 4;
                    Int32 litContextBits = 3; // for normal files
                    // UInt32 litContextBits = 0; // for 32-bit data
                    Int32 litPosBits = 0;
                    // UInt32 litPosBits = 2; // for 32-bit data
                    Int32 algorithm = 2;
                    Int32 numFastBytes = 128;
                    string mf = "bt4";
                    bool eos = false;


                    object[] properties =
                    {
                    (Int32)(dictionary),
                    (Int32)(posStateBits),
                    (Int32)(litContextBits),
                    (Int32)(litPosBits),
                    (Int32)(algorithm),
                    (Int32)(numFastBytes),
                    mf,
                    eos
                    };

                    SevenZip.Compression.LZMA.Encoder encoder = new SevenZip.Compression.LZMA.Encoder();
                    encoder.SetCoderProperties(propIDs, properties);
                    encoder.WriteCoderProperties(packFile);
                    Int64 fileSize;
                    fileSize = xmlFile.Length;
                    for (int i = 0; i < 8; i++)
                        packFile.WriteByte((Byte)(fileSize >> (8 * i)));
                    encoder.Code(xmlFile, packFile, -1, -1, null);
}


В результате на выходе получаю файл сжатый со степенью нормально.

Что мне нужно поменять добавить, чтоб жало с Ультра степенью?

PS исходники 7z не менял, всё стандартно.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог