有时候开发东西的时候,我们可能会让程序自己删除自己。如果纯粹的是.net程序我想很难做到,因为程序打开后会将自身exe锁定,无法删除。这里我们可以换个思路,借助一个bat来达到我们的目的,因为bat文件是可以删除自身的。简单的说,就是在程序退出之前,启动一个bat文件,待程序退出之后,bat文件会把exe删掉,然后再把自己删掉。
我们可以做一个例子测试,在一个From上放一个按钮,点击按钮后运用上面的逻辑的删除自身。代码如下:
public partial class Form1 : Form { public Form1() { InitializeComponent(); this.BtnDelete.Click += new EventHandler(BtnDelete_Click); } private void BtnDelete_Click(object sender, EventArgs e) { string strFile = Application.ExecutablePath; string cmd = ":DeleteFile" + Environment.NewLine + "del \"" + strFile + "\"" + Environment.NewLine + "if exist \"" + strFile + "\" goto DeleteFile" + Environment.NewLine + Environment.NewLine + "del %0"; string batFilePath = System.IO.Path.Combine(Application.StartupPath, Guid.NewGuid().ToString() + ".bat"); System.IO.File.WriteAllText(batFilePath, cmd); System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(); startInfo.FileName = batFilePath; startInfo.CreateNoWindow = true; startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; startInfo.UseShellExecute = false; System.Diagnostics.Process.Start(startInfo); Application.Exit(); } }
运行程序,界面和exe文件如下:
点击删除按钮,SelfDeleteProgram.exe文件被成功删除:
本文章由创风网原创,转载请注明出处:http://www.windite.com/article/details/9t0p0c9