C#windows程序删除自身代码

思路:

exe运行以后是不能删除的,因为文件被进程占用,删除的思路是:把脚本写到bat文件中,然后运行bat并关闭自身。代码如下:

如果删不了,可能是程序关闭的速度慢了。可以在bat脚本中加入sleep。

这个思路也可以用于程序联网自动更新。exe程序把需要更新的文件下载到固定目录中,在启动脚本剪切覆盖后启动。


        private static void DeleteThisExe()
        {
            string fileName = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "remove.bat");
            System.IO.StreamWriter bat = new System.IO.StreamWriter(fileName, false, System.Text.Encoding.Default);
            bat.WriteLine(string.Format("del \"{0}\" /q", System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName));
            bat.WriteLine(string.Format("del \"{0}\" /q", fileName));
            bat.Close();
            System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo(fileName);
            info.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
            System.Diagnostics.Process.Start(info);
            Environment.Exit(0);
        }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值