Одна вещь, которую вы можете сделать, это уменьшить вложенность.
Отказ от ответственности : Это полностью основано на мнении.
Mutex mtx = new Mutex(true, "AppName", out bool onlyInstance);
if (!onlyInstance)
return;
var whitelist = new HashSet<string> { ".txt" };
if (!args.Any() || !whitelist.Contains(Path.GetExtension(args[0])))
return;
args = Environment.GetCommandLineArgs();
// also this is redundant
//if (args.Length <= 1)
// return;
var filePath = args[1];
var fileName = Path.GetFileName(filePath);
var fileNameNoExt = Path.GetFileNameWithoutExtension(filePath);
var fileExt = Path.GetExtension(filePath); // this is never used
var fileFolderDir = Path.GetDirectoryName(filePath);
var newFileName = $"{fileName}.my1";
var createFolderIn = Environment.ExpandEnvironmentVariables("%AppData%\\AppName\\Copy\\");
var dstPath = Environment.ExpandEnvironmentVariables("%AppData%\\AppName\\Copy\\") + newFileName;
// not sure why you have 2 of these but its ugly and looks redundent
var systemFolderLS = Environment.ExpandEnvironmentVariables("%SystemRoot%\\System32");
var systemFolderLs = Environment.ExpandEnvironmentVariables("%SystemRoot%\\system32");
Directory.CreateDirectory(createFolderIn);
File.Copy(filePath, dstPath, true);
if (fileFolderDir == systemFolderLS || fileFolderDir == systemFolderLs)
{
var ProcAll = new Process();
ProcAll.StartInfo.Verb = "runas";
ProcAll.StartInfo.FileName = fileNameNoExt + ".exe";
return;
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
Отказ от ответственности 2 : Полностью не проверено, поэтому я не несу ответственности за людей, которых вы покалечите или иным образом навредите этим кодом