C# 删除正在C控制台中运行的程序#

C# 删除正在C控制台中运行的程序#,c#,console,C#,Console,我创建了一个删除文件夹的程序。 像这样: if (Directory.Exists((System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "My Dir Name")))) { Directory.Delete(System.IO.Path.Combine(Environment.GetFolderPath(Environment.

我创建了一个删除文件夹的程序。 像这样:

    if (Directory.Exists((System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "My Dir Name"))))
    {
        Directory.Delete(System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "My Dir Name"), true);
    }
这没关系。但是一个名为“Delete.exe”的文件在“My Dir name”目录下[就像我的代码一样]!它给出了一个错误,因为“Delete.exe”正在运行,无法删除


如何删除“delete.exe”?

您试图删除正在运行的应用程序所在的文件夹,从而删除程序本身?嗯,你有几个选择。值得注意的是,批处理文件可以删除它们自己。因此,这也给您留下了更多的选择:

  • 在删除文件夹之前,让您的C#程序将自身复制到临时目录,然后从那里运行
  • 完全使用批处理文件而不是C#-让它做任何事情,然后删除自己
  • 让你的C#程序生成并执行一个批处理文件,然后退出——让批处理文件在C#程序退出后清理
  • 在指定时间后运行CLI命令删除您的程序:
    • Process.Start(“cmd.exe”,“/C ping 1.1.1.1-n1-w 3000>Nul&Del”+Application.ExecutablePath)
  • 您可以使用指定在下次启动时删除程序

  • 这些答案中的大多数都暗示运行EXE是您自己的应用程序。如果不是,那么-#5仍然有效。您可以安排在下次计算机启动时将其删除。

    您试图删除正在运行的应用程序所在的文件夹,从而删除程序本身?嗯,你有几个选择。值得注意的是,批处理文件可以删除它们自己。因此,这也给您留下了更多的选择:

  • 在删除文件夹之前,让您的C#程序将自身复制到临时目录,然后从那里运行
  • 完全使用批处理文件而不是C#-让它做任何事情,然后删除自己
  • 让你的C#程序生成并执行一个批处理文件,然后退出——让批处理文件在C#程序退出后清理
  • 在指定时间后运行CLI命令删除您的程序:
    • Process.Start(“cmd.exe”,“/C ping 1.1.1.1-n1-w 3000>Nul&Del”+Application.ExecutablePath)
  • 您可以使用指定在下次启动时删除程序

  • 这些答案中的大多数都暗示运行EXE是您自己的应用程序。如果不是,那么-#5仍然有效。您可以安排在下次计算机启动时将其删除。

    可能的重复是和的重复问题,甚至可能的重复是和的重复问题,甚至可能的重复