Странная ошибка в SharpZipLib - размер был х, но я ожидал у - PullRequest
2 голосов
/ 23 октября 2009

Я получаю сообщение об ошибке при использовании SharpZipLib. У меня есть код, который выглядит как

FastZip compressor = new FastZip();
compressor.CreateZip(outputFileName, currentWorkingDirectory, true, "");

Что кажется правильным. Тем не менее, я получаю ZipException, утверждая, что

size was 0, but I expected 54

Понятия не имею, что это значит. У кого-нибудь есть понимание или какая-то ссылка на документ API?

Ответы [ 3 ]

3 голосов
/ 28 октября 2009

Оказывается, проблема была в следующем. Я пытался создать файл .zip из всех элементов в данном каталоге и поместить этот файл .zip в каталог. Очевидно, как работает эта библиотека, создается файл .zip, а затем каталог читается в файл за файлом, записываясь в файл .zip. Произошла ошибка при попытке добавить сам файл .zip в zip! Вероятно, в тот момент было отказано в доступе к файлу или чему-то другому, что привело к ошибке выше. Простым решением было создать файл .ZIP в другом каталоге.

1 голос
/ 23 октября 2009

Здесь - ссылки на их исходный код и файл справки с документацией API.

0 голосов
/ 16 апреля 2019

Я исправил подобную проблему, обработав ее внутри обработчика событий ProgressHandler и передав ZIPEntry в качестве Отправителя. Так как это условие ошибки, поэтому мы должны прекратить дальнейшую обработку файла zip e.ContinueRunning должен быть установлен как false

private void ProcessFileHandler(object sender, ProgressEventArgs e)
        {                    
                ZipEntry newEntry = sender as ZipEntry;
                if (newEntry != null)
                {
                    newEntry.Size = e.Processed;
                }
                e.ContinueRunning = keepRunning;
                return;
         }
...