OpenBve.formMain.buttonCreatePackage_Click C# (CSharp) Méthode

buttonCreatePackage_Click() private méthode

private buttonCreatePackage_Click ( object sender, EventArgs e ) : void
sender object
e System.EventArgs
Résultat void
		private void buttonCreatePackage_Click(object sender, EventArgs e)
		{
			var directory = Path.GetDirectoryName(currentPackage.FileName);
			try
			{
				if (directory == null)
				{
					throw new DirectoryNotFoundException();
				}
				if (!Directory.Exists(directory))
				{
					throw new DirectoryNotFoundException(directory);
				}
				if (!Program.CurrentlyRunningOnMono)
				{
					//Mono doesn't support System.Security.AccessControl, so this doesn't work....
					Directory.GetAccessControl(directory);
				}
				using (FileStream fs = File.OpenWrite(currentPackage.FileName))
				{
					//Just attempt to open the file with to write as a test
				}
			}
			catch (Exception ex)
			{
				if (ex is DirectoryNotFoundException)
				{
					//We didn't find the directory
					//In theory this shouldn't happen, but handle it just in case
					if (ex.Message == string.Empty)
					{
						//Our filename is blank
						MessageBox.Show(Interface.GetInterfaceString("packages_filename_empty"), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Hand);
					}
					else
					{
						//Directory doesn't exist
						MessageBox.Show(Interface.GetInterfaceString("packages_directory_missing") + ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Hand);
					}

				}
				else if (ex is UnauthorizedAccessException)
				{
					//No permissions from access control
					MessageBox.Show(Interface.GetInterfaceString("packages_directory_nowrite") + directory, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Hand);
				}
				else
				{
					//Generic error
					MessageBox.Show(Interface.GetInterfaceString("packages_file_generic") + currentPackage.FileName, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Hand);
				}
				return;
			}
			HidePanels();
			panelPleaseWait.Show();
			ProblemEncountered = false;
			workerThread.DoWork += delegate
			{
				Manipulation.CreatePackage(currentPackage, Interface.CurrentOptions.packageCompressionType, currentPackage.FileName, ImageFile, filesToPackage);
			};

			workerThread.RunWorkerCompleted += delegate {
				if (ProblemEncountered == false)
				{
					string text = "";
					for (int i = 0; i < filesToPackage.Count; i++)
					{
						text += filesToPackage[i].relativePath + "\r\n";
					}
					textBoxFilesInstalled.Text = text;
					labelInstallSuccess1.Text = Interface.GetInterfaceString("packages_creation_success");
					labelInstallSuccess2.Text = Interface.GetInterfaceString("packages_creation_success_header");
					labelListFilesInstalled.Text = Interface.GetInterfaceString("packages_creation_success_files");
					buttonInstallFinish.Text = Interface.GetInterfaceString("packages_success");
				}
				panelPleaseWait.Hide();
				panelSuccess.Show();
			};

			 workerThread.RunWorkerAsync();	
		}
formMain