Unity Windows平台应用自删除

1. 在Windows上程序不可以自身销毁自身,所以必须借用外部程序或批处理文件来完成这项工作,所以现在示范在unity的c#中如何将自身程序销毁(仅适用于Windows平台)

Process.Start("cmd.exe", "/C ping 1.1.1.1 -n 1 -w 3000 > Nul & Del " + System.Environment.CurrentDirectory + "\\" + appName + ".exe & rd /s/q " + System.Environment.CurrentDirectory + "\\" + appName + "_Data");
        Application.Quit();
  1. Process类的头文件是using System.Diagnostics;
  2. System.Environment.CurrentDirectory的意思是当前程序所在的目录
  3. 这是借用cmd(命令行程序进行删除当前应用)
  4. Process.Start(string path)是打开什么文件的操作,在这里是打开cmd程序的操作
  5. /C ping 1.1.1.1 -n 1 -w 3000 > Nul & Del:
    • >/C是会导致一个命令窗口出现并运行指定的命令。然后它会自动关闭该窗口
    • >-n 1:表示该操作只执行一次
    • >-w 3000 :表示该操作延时3秒后进行
    • >”>nul”:将命令行窗口隐藏
    • >&:不同命令之间用&进行连接,如果是同时操作两个文件,文件与文件之间使用”AND”
    • >del + 路径:进行删除文件(记得文件路径必须使用”\\”)
    • >rd /s/q:表示删除文件夹,而且不进行提示或警告
    • >del /F /S /Q:表示删除文件夹下的所有文件,不进行提示
    • >还有一部很重要的操作就是,在命令行第一条命令即延迟3秒的命令执行完成前,必须先关闭应用”Application.Quit()”,如果应用不关闭,那么删除也不会成功

所以这个操作也就是曲线救国,利用两个程序之间的执行时间差来模拟应用自动销毁的过程

参考:https://www.codeproject.com/Articles/31454/How-To-Make-Your-Application-Delete-Itself-Immedia

猜你喜欢

转载自blog.csdn.net/star__119/article/details/79544396