自杀程序,删掉自身,包括执行程序所在的文件夹。c#
仅在windows下进行了测试,使用语言C#windows
string fileName = Path.GetTempPath() + "killmyself.bat"; FileInfo fi = new FileInfo(fileName); if(fi.Exists) fi.Delete(); StreamWriter bat = new StreamWriter(fi.OpenWrite()); bat.WriteLine("cd .."); //bat.WriteLine($"del \"{Environment.CurrentDirectory}\" /q"); bat.WriteLine($"rd \"{Environment.CurrentDirectory}\" /Q /S"); //删除包括执行程序的文件夹 bat.WriteLine($"del \"{fileName}\" /q"); //删除临时bat文件 bat.Close(); ProcessStartInfo info = new ProcessStartInfo(fileName); info.WindowStyle = ProcessWindowStyle.Hidden; Process.Start(info); Environment.Exit(0);
递归删除目录的样例代码测试
/// <summary> /// 递归删除目录 /// </summary> /// <param name="dir"></param> public static void Deletedir(DirectoryInfo dir) { if (!dir.Exists) { Console.WriteLine("Directory not exists"); return; } foreach (var item in dir.GetDirectories()) { Deletedir(item); } try { dir.Delete(true); Console.WriteLine("delete " + dir.FullName); } catch (Exception) { } }