自殺程序,刪掉自身,包括執行程序所在的文件夾。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) { } }