public ActionResult Keys(int p, int q) { RsaUtils rsaUtils = new RsaUtils(); List <string> files = new List <string>(); if (rsaUtils.GenerateKeys(p, q, ref files)) { string temp = Server.MapPath("~/App_Data/RSA-Keys/temp/"); string archive = Server.MapPath("~/App_Data/RSA-Keys/archive.zip"); if (Directory.Exists(temp)) { Directory.Delete(temp, true); Directory.CreateDirectory(temp); } else { Directory.CreateDirectory(temp); } if (System.IO.File.Exists(archive)) { System.IO.File.Delete(archive); } foreach (string file in files) { System.IO.File.Copy(file, temp + Path.GetFileName(file)); } ZipFile.CreateFromDirectory(temp, archive); return(File(archive, "application/zip", "keys.zip")); } else { ViewBag.Message = "Bad Keys"; return(View("Index")); } }