В классе ZipFile есть метод ExtractSelectedEntries. вот подпись метода.
public void ExtractSelectedEntries(string selectionCriteria, string directoryPathInArchive, string extractDirectory, ExtractExistingFileAction extractExistingFile)
Таким образом, в вашей программе вы можете просто извлечь указанные файлы, указав selectionCriteria.
public void ExtractFileToDirectory(string zipFileName, string outputDirectory)
{
ZipFile zip = ZipFile.Read(zipFileName);
Directory.CreateDirectory(outputDirectory);
zip.ExtractSelectedEntries("name = *.doc", "document\", outputDirectory, ExtractExistingFileAction.OverwriteSilently);
}
Вы можете комбинировать критерии с соединениями И или ИЛИ. Использование строки, подобной «name = * .txt AND size> = 100k», для selectionCriteria извлекает записи, имена которых заканчиваются на .txt, а несжатый размер которых больше или равен 100 килобайтам.
вот некоторые критерии критериев
критерий (извлеченные файлы)
name! = * .Xls (любой файл с расширением, отличным от .xls)
name = * .mp3 (любой файл с расширением .mp3)
*. Mp3 (как и выше, любой файл с расширением .mp3)
attribute = A (все файлы, атрибуты которых включают бит Archive)
attribute! = H (все файлы, атрибуты которых не включают бит Hidden)
mtime> 2009-01-01 (все файлы с последним измененным временем после 1 января 2009 г.)
размер> 2 ГБ (все файлы, размер которых не превышает 2 ГБ)
Для получения дополнительной информации вы должны прочитать документ API наедине с библиотекой.