自杀程序&递归删除目录

自杀程序,删掉自身,包括执行程序所在的文件夹。

仅在windows下进行了测试,使用语言C#

        string fileName = Path.GetTempPath() + "killmyself.bat";
        FileInfo fi = new FileInfo(fileName);
        if(fi.Exists)
            fi.Delete();
        StreamWriter bat = new StreamWriter(fi.OpenWrite());

        bat.WriteLine("cd ..");
        //bat.WriteLine($"del "{Environment.CurrentDirectory}" /q");
        bat.WriteLine($"rd "{Environment.CurrentDirectory}" /Q /S");  //删除包括执行程序的文件夹
        bat.WriteLine($"del "{fileName}" /q");    //删除临时bat文件

        bat.Close();
        ProcessStartInfo info = new ProcessStartInfo(fileName);
        info.WindowStyle = ProcessWindowStyle.Hidden;
        Process.Start(info);
        Environment.Exit(0);

递归删除目录的样例代码

    /// <summary>
    /// 递归删除目录
    /// </summary>
    /// <param name="dir"></param>
    public static void Deletedir(DirectoryInfo dir)
    {
        if (!dir.Exists)
        {
            Console.WriteLine("Directory not exists");
            return;
        }

        foreach (var item in dir.GetDirectories())
        {
            Deletedir(item);
        }
        try
        {
            dir.Delete(true);
            Console.WriteLine("delete   " + dir.FullName);
        }
        catch (Exception)
        {
        }
    }
原文地址:https://www.cnblogs.com/cnryb/p/6077721.html