#c# #nuget #zip #nuget-package
#c# #nuget #zip #nuget-пакет
Вопрос:
Я могу разархивировать файлы, используя тот же код, но для файлов размером более 65 МБ он генерирует ошибку переполнения в ZipFile.Read
Я написал код:
using Ionic.Zip;
private void UnzipFile()
{
using (ZipFile zip = ZipFile.Read(currentFilePath))
{
zip.ExtractAll(target_file_path, ExtractExistingFileAction.OverwriteSilently);
}
}
Но ошибка при получении переполнения:
Ionic.Zip.ZipException
HResult=0x80131500
Message=Cannot read that as a ZipFile
Source=Ionic.Zip
StackTrace:
at Ionic.Zip.ZipFile.ReadIntoInstance(ZipFile zf)
at Ionic.Zip.ZipFile.Read(String fileName, TextWriter statusMessageWriter, Encoding encoding, EventHandler`1 readProgress)
at Ionic.Zip.ZipFile.Read(String fileName)
Inner Exception 1:
OverflowException: overflow while creating filename
Комментарии:
1. В проекте GitHub есть отчет об ошибке / issue, связанный с Ionic.Zip: github.com/haf/DotNetZip.Semverd/issues/101
2. Но мой файл не настолько велик, как указано в предоставленной вами ссылке. Проблема в вашей ссылке имеет размер 4,7 ГБ, в то время как размер моего файла составляет всего около 70 МБ. Я изучил каждый аспект, прежде чем писать вопрос на самом деле.
3. Ну и что? Мешает ли вам другой размер ZIP-файла использовать обходной путь, упомянутый в этом отчете о проблеме / баге? (Заметили ли вы в отчете об ошибке, что проблема, по-видимому, была связана не с размером файла, а с переменной call count, ограничивающей количество (рекурсивных?) AppendCopyToFileName вызывается искусственно?)