Hay un método ExtractSelectedEntries en la clase ZipFile. aquí está la firma del método.
public void ExtractSelectedEntries(string selectionCriteria, string directoryPathInArchive, string extractDirectory, ExtractExistingFileAction extractExistingFile)
Así que en su programa, puede simplemente extraer los archivos especificados al proporcionar la selecciónCriteria.
public void ExtractFileToDirectory(string zipFileName, string outputDirectory)
{
ZipFile zip = ZipFile.Read(zipFileName);
Directory.CreateDirectory(outputDirectory);
zip.ExtractSelectedEntries("name = *.doc", "document\", outputDirectory, ExtractExistingFileAction.OverwriteSilently);
}
Puede combinar criterios con las conjunciones AND u OR. Usando una cadena como "name = * .txt AND size> = 100k" para selectionCriteria recupera las entradas cuyos nombres terminan en .txt, y cuyo tamaño no comprimido es mayor o igual que 100 kilobytes.
He aquí algunos ejemplos de criterios
criterios (archivos recuperados)
nombre! = * .xls (cualquier archivo con una extensión que no es .xls)
nombre = * .mp3 (cualquier archivo con una extensión .mp3)
* .mp3 (igual que el anterior, cualquier archivo con una extensión .mp3)
atributos = A (todos los archivos cuyos atributos incluyen el bit de archivo)
atributos! = H (todos los archivos cuyos atributos no incluyen el bit oculto)
-mtime> 2009-01-01 (todos archivos con una última vez después del 1 de enero de modificación del 2009)
tamaño> 2 GB (todos los archivos cuyo tamaño no comprimido es mayor que 2 GB)
Para mayor referencia, Sho uld lee el documento API solo con la biblioteca.
Cómo usar ExtractSelectedEntries con múltiples criterios. Lo necesito para todos los formatos de imagen (jpg, png, gif, jpeg). ¿Cómo hacerlo? –