Странная ошибка в SharpZipLib & # 8212; Размер был х, но я ожидал у

StackOverflow https://stackoverflow.com/questions/1613892

Вопрос

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

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

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

size was 0, but I expected 54

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

Это было полезно?

Решение

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

Другие советы

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

Я исправил подобную проблему, обработав ее внутри обработчика событий 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;
         }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top