C# 使用Winform C,删除exe所在的文件夹

C# 使用Winform C,删除exe所在的文件夹,c#,.net,winforms,C#,.net,Winforms,我有一个winform exe,可以删除应用程序和应用程序所需的文件夹。但是我也想删除winform根文件夹。所以,有没有一种方法可以做到这一点,因为我被告知它不可能删除其中运行的exe文件夹。因此,是否有任何临时路径或类似的地方,我可以复制卸载程序,以便它删除安装根文件夹,并在过程完成后将其自身删除 谢谢您可以运行一个不可见的CMD实例来为您执行删除操作: ProcessStartInfo psi = new ProcessStartInfo("cmd.exe", String.Fo

我有一个winform exe,可以删除应用程序和应用程序所需的文件夹。但是我也想删除winform根文件夹。所以,有没有一种方法可以做到这一点,因为我被告知它不可能删除其中运行的exe文件夹。因此,是否有任何临时路径或类似的地方,我可以复制卸载程序,以便它删除安装根文件夹,并在过程完成后将其自身删除


谢谢

您可以运行一个不可见的CMD实例来为您执行删除操作:

ProcessStartInfo psi = new ProcessStartInfo("cmd.exe", 
    String.Format("/k {0} & {1} & {2}", 
        "timeout /T 1 /NOBREAK >NUL",
        "rmdir /s /q \"" + Application.StartupPath + "\"",
        "exit"
    )
);

psi.UseShellExecute = false;
psi.CreateNoWindow = true;
psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;

Process.Start(psi);
在应用程序即将关闭时执行上述代码,它将删除它所在的目录

使用的命令包括:

超时/T x/NOBREAK>NUL -等待一定的时间。 /T x-等待x秒。 /NOBREAK-指定不应通过按空格或Enter键来中断。 >NUL-不向控制台输出任何消息。 rmdir/s/q -删除目录。 /s-删除子文件和子目录。 /q-不要要求确认。 出口 -关闭CMD实例
重要提示:使用时要特别小心,因为它将删除整个目录,无论其中包含什么

您可以运行CMD的不可见实例来执行删除操作:

ProcessStartInfo psi = new ProcessStartInfo("cmd.exe", 
    String.Format("/k {0} & {1} & {2}", 
        "timeout /T 1 /NOBREAK >NUL",
        "rmdir /s /q \"" + Application.StartupPath + "\"",
        "exit"
    )
);

psi.UseShellExecute = false;
psi.CreateNoWindow = true;
psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;

Process.Start(psi);
在应用程序即将关闭时执行上述代码,它将删除它所在的目录

使用的命令包括:

超时/T x/NOBREAK>NUL -等待一定的时间。 /T x-等待x秒。 /NOBREAK-指定不应通过按空格或Enter键来中断。 >NUL-不向控制台输出任何消息。 rmdir/s/q -删除目录。 /s-删除子文件和子目录。 /q-不要要求确认。 出口 -关闭CMD实例
重要提示:使用时要特别小心,因为它将删除整个目录,无论其中包含什么

有临时路径吗嗯,是吗?您要删除的应用程序应该有一个卸载程序,这应该被起诉。或者用户应该在运行您的应用程序之前关闭已删除的应用程序。现在看来,你正在做一些用户不想做的事情,删除了当前正在使用的一个应用程序。解释为什么你的行为是合法的。@RemusRusanu实际上我做了一个应用程序,它执行一些功能。现在我想有一个卸载程序。所以我在同一个exe中对安装程序和卸载程序进行了编程。所以我在删除文件时被困在了这一部分。视觉文森特的回答帮助了我。有临时路径吗,嗯,是的?您要删除的应用程序应该有一个卸载程序,这应该被起诉。或者用户应该在运行您的应用程序之前关闭已删除的应用程序。现在看来,你正在做一些用户不想做的事情,删除了当前正在使用的一个应用程序。解释为什么你的行为是合法的。@RemusRusanu实际上我做了一个应用程序,它执行一些功能。现在我想有一个卸载程序。所以我在同一个exe中对安装程序和卸载程序进行了编程。所以我在删除文件时被困在了这一部分。视觉回答帮助了我。@AnkurRai:我很高兴我能帮上忙!祝你的项目好运@安库赖:我很高兴能帮上忙!祝你的项目好运!