private void cmdChooseZip_Click(object sender, EventArgs e) { OpenZip.CheckFileExists = true; OpenZip.ShowDialog(); if (File.Exists(OpenZip.FileName)) { lblPath.Text = OpenZip.FileName; var result = CheckZip.Check(OpenZip.FileName); lblMessage.ForeColor = Color.Black; lblMessage.BackColor = this.BackColor; lblMessage.Font = new Font(lblMessage.Font.Name, 8.25f, FontStyle.Regular); switch (result) { case CheckZip.EvalResult.Incompatible: lblMessage.Text = "This Zip file is not compatible with the game's Zip support."; return; case CheckZip.EvalResult.Invalid: lblMessage.Text = "This file does not appear to be a valid Zip file."; return; case CheckZip.EvalResult.Optimized: lblMessage.Text = "This file is an Optimized Archive (.dat)."; return; case CheckZip.EvalResult.Unsafe: lblMessage.Text = "This Archive WILL overflow the buffer, and may execute code."; lblMessage.ForeColor = Color.Red; lblMessage.BackColor = Color.Black; lblMessage.Font = new Font(lblMessage.Font.Name, lblMessage.Font.Size + 5, FontStyle.Bold); return; case CheckZip.EvalResult.Valid: lblMessage.Text = "This Archive is safe to use in the game."; return; } } else { //The user probably clicked Cancel. It's all good. } }
private void Install_Click(object sender, EventArgs e) { Hide(); var pluginLocation = Path.Combine(_server, "Rocket", "Plugins"); var librariesLocation = Path.Combine(_server, "Rocket", "Libraries"); var moduleLocation = Path.Combine(ServerPath.Value, "Modules"); var tempName = Path.GetTempFileName(); var tempLocation = Path.Combine(Path.GetTempPath(), tempName.Substring(0, tempName.Length - 4)); var result = OpenZip.ShowDialog(); if (result == DialogResult.OK) { var stream = (FileStream)OpenZip.OpenFile(); FileActions.ExtractZip(stream.Name, tempLocation); var tempLibraries = Path.Combine(tempLocation, "Libraries"); if (FileActions.VerifyPath(tempLibraries, false)) { var folder = new DirectoryInfo(tempLibraries); var content = folder.GetFiles("*.dll", SearchOption.TopDirectoryOnly); foreach (var file in content) { var dest = Path.Combine(librariesLocation, file.Name); if (File.Exists(dest)) { File.Delete(dest); } FileActions.VerifyFilePath(dest, true); file.MoveTo(dest); } } var tempPlugins = Path.Combine(tempLocation, "Plugins"); if (FileActions.VerifyPath(tempPlugins, false)) { var folder = new DirectoryInfo(tempPlugins); var content = folder.GetFiles("*.dll", SearchOption.TopDirectoryOnly); foreach (var file in content) { var dest = Path.Combine(pluginLocation, file.Name); if (File.Exists(dest)) { File.Delete(dest); } FileActions.VerifyFilePath(dest, true); file.MoveTo(dest); } } var tempModules = Path.Combine(tempLocation, "Modules"); if (FileActions.VerifyPath(tempModules, false)) { var folder = new DirectoryInfo(tempModules); var content = folder.GetFiles("*.dll", SearchOption.TopDirectoryOnly); foreach (var file in content) { var dest = Path.Combine(moduleLocation, file.Name); if (File.Exists(dest)) { File.Delete(dest); } FileActions.VerifyFilePath(dest, true); file.MoveTo(dest); } } } LoadInstalled(); Show(); }
private void AddZipClauseMenuClick(object sender, EventArgs e) { ShowFileDialog(this.archiveConstraint); OpenZip?.Invoke(sender, e); }