I agree IonicZip (now dotnetzip) is good. here is the sample of what you want to do
string somepath = "D:\\ExcelFiles";
string zippath = "D:\\ExcelFiles\\some.zip";
string[] filenames =
System.IO.Directory.GetFiles(somepath, "Mark*.xlsx", SearchOption.AllDirectories);
using (ZipFile zip = new ZipFile())
{
foreach (String filename in filenames)
{
ZipEntry e = zip.AddFile(filename, "");
}
zip.Save(zippath);
}