Ionic.Zlib 套件 產生Zip壓縮檔

C# 產生Zip檔

假設資料夾DOC中有N個資料 (.docx檔)  要加他們全部加入壓縮

//var zipService = new Ionic.Zip.ZipFile();   
// 2017/1/3 補充更新: 當壓縮檔內檔名有中文時,如果沒指定編碼中文會亂碼
ZipFile zipFile= new ZipFile(System.Text.Encoding.Default) ;

//取出所有資料夾內的Word檔的FileInfo
string pDir = HttpContext.Current.Server.MapPath("~/Doc");
System.IO.DirectoryInfo fDir = new System.IO.DirectoryInfo(pDir);
var files = fDir.GetFiles("*.zip");  

foreach(FileInfo fi in files){
   if (fi.Exists)
   {
        using (var fstream = fi.Open(FileMode.Open))
        {
                //將檔案讀到記憶體存在一個Byte陣列
               var ary = new byte[fstream.Length];        
               fstream.Read(ary, 0, fstream.Length);
               zipService.AddEntry(fi.FullName, ary);  //加入壓縮檔     AddEnrty也可以傳入Stream 但因為下面做了檔案刪除  無法這樣做
        }
        fi.Delete();
   }
   zipService.Save(Server.MapPath(string.Format("~\\doc\\{0}", "output.Zip")));   //儲存一個檔案 output.zip 完成
}