2017-01-20 2 views
0

Я использую System.IO.Compression в .net 4.5, а ZipArchive и ZipFile используются для добавления файлов txt в архив. Есть около 75 файлов. Файлы, помещенные в папку и измеряемые размером, были около 15 КБ.ZipArchive ZipFile не сжимает

Но при использовании для архивирования с использованием ZipArchive размер zip-файла составлял 21 КБ. Я делаю что-то не так, или это ZipArhive просто для того, чтобы помещать файлы в один файл архива вместо сжатия?

Это то, что используется для создания .zip-алограммы. Это то, что я сделал. Есть ли высокий уровень сжатия, который может быть использован? Для .7zip размера файла будет еще меньше, около 1KB только

using (ZipArchive zippedFile = ZipFile.Open(zipFileName, ZipArchiveMode.Create)) 
       { 
        foreach (string file in filesTobeZipped) 
        { 
         zippedFile.CreateEntryFromFile(file, Path.GetFileName(file), CompressionLevel.Optimal); 
        } 
       } 

ответ

1

Каждой записи в почтовом файле имеет накладные расходы для местных и центральных коллекторов 76 байт плюс длина имени файла с пустым, дважды, плюс одна конечная запись из 22 байтов. Для 75 файлов, каждый с, скажем, трехсимвольным именем, общий накладной будет около 6K. Каждый файл в среднем содержит около 200 байтов в несжатом состоянии, что слишком мало для эффективного сжатия. Если каждый файл остался 200-байтной записью в zip-файле, тогда вы получите 21-кратный zip-файл. Это на самом деле то, что вы получили.

+0

Итак, вы хотите сказать, что для минимального размера файла 1 КБ и для партии из 100-1000 файлов нам не нужно ожидать слишком большого сжатия, и он будет почти того же размера или больше, чем фактический размер всех эти файлы? – rahulmr

+0

Да ............ –

+0

Обратите внимание, что на вашем диске каждый файл также занимает больше места, чем он говорит. Объем пространства, занимаемого однобайтовым файлом, вероятно, 512 или 1024 байта, в зависимости от вашей операционной системы. И это даже не учитывает пространство, занимаемое соответствующей записью каталога. –

Смежные вопросы