自殺程序&遞歸刪除目錄

自殺程序,刪掉自身,包括執行程序所在的文件夾。c#

僅在windows下進行了測試,使用語言C#windows

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)
        {
        }
    }
相關文章
相關標籤/搜索