DotNetZip и CheckZip

Я пробовал использовать CheckZip в DotNetZip для тестирования около 22 000 zip-файлов, и он не сообщает об ошибках. Однако WinRAR сообщает, что для ряда этих файлов поврежден архив, поэтому мне интересно, что здесь происходит, и правильно ли я реализовал CheckZip. Если я переименую текстовый файл в test.zip и проверю его, я получу test.zip не является действительным zip-файлом от DotNetZip, поэтому похоже, что он в основном работает. Код выглядит так:

 public static bool CheckZip(string zipFileName)
        {
            try
            {
                return ZipFile.CheckZip(zipFileName);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString());
                return false;
            }
        }

ОБНОВЛЕНИЕ: нашел простое решение здесь, используя вместо этого SharpZipLib . Работает отлично.


person Rado    schedule 04.05.2021    source источник
comment
Что вы имеете в виду правильно ли я реализовал CheckZip? Все, что вам нужно сделать, это позвонить ZipFile.CheckZip(). Вы читали его документацию, чтобы узнать, каких аргументов он ожидает / каковы его ограничения?   -  person Pranav Hosangadi    schedule 04.05.2021
comment
Мне не удалось найти никакой документации, кроме того, что она должна возвращать false, если zip плохой (что, конечно, проверяет код).   -  person Rado    schedule 04.05.2021
comment
@Rado Проверяет zip-файл на предмет согласованности его каталога. также указывается в их документация, а также: В случае ошибки данных каталог в zip-файле может не синхронизироваться с записями в zip-файле. Этот метод проверяет данный zip-файл и возвращает истину, если это произошло.   -  person zaggler    schedule 04.05.2021
comment
Значит, без проверки CRC?   -  person Rado    schedule 04.05.2021
comment
Я прочитал это в другом посте здесь: Самый полный уровень - это полное извлечение zip-файла в битовый пакет, чтобы убедиться, что фактические сжатые данные не повреждены. stackoverflow.com/questions/3954505/   -  person Rado    schedule 04.05.2021