示例应用:ClearDir.exe 可用于清理其他文件 和 自删除
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ClearDir
{
public class AutoDelet
{
/// <summary>
/// 应用自删除
/// </summary>
public static void deletItself()
{
try
{
string curExe = System.Windows.Forms.Application.ExecutablePath;
string tmpName = AppDomain.CurrentDomain.BaseDirectory + "$";
string name1 = "$";
while (File.Exists(tmpName))
{
tmpName = tmpName + "$";
name1 = name1 + "$";
}
File.Move(curExe, tmpName); // 重命名当前文件
string vbsName = AppDomain.CurrentDomain.BaseDirectory + "$";
string name2 = "$";
while (File.Exists(vbsName + ".vbs"))
{
vbsName = vbsName + "$";
name2 = name2 + "$";
}
//Set ws = CreateObject("Wscript.Shell")
//WScript.sleep 5000
//ws.run "cmd /c ?> $",vbhide
//ws.run "cmd /c del $",vbhide
//ws.run "cmd /c ?> $.vbs",vbhide
//ws.run "cmd /c del $.vbs",vbhide
StringBuilder Str = new StringBuilder();
Str.AppendLine("Set ws = CreateObject(\"Wscript.Shell\")");
Str.AppendLine("WScript.sleep 4000");
Str.AppendLine("ws.run \"cmd /c ?> " + name1 + "\",vbhide");
Str.AppendLine("ws.run \"cmd /c del " + name1 + "\",vbhide");
Str.AppendLine("ws.run \"cmd /c ?> " + name2 + ".vbs\",vbhide");
Str.AppendLine("ws.run \"cmd /c del " + name2 + ".vbs\",vbhide");
string data = Str.ToString();
SaveFile(data, vbsName + ".vbs");
System.Diagnostics.Process.Start(vbsName + ".vbs");
System.Environment.Exit(0); //退出
}
catch(Exception){}
}
/// <summary>
/// 保存数据data到文件处理过程,返回值为保存的文件名
/// </summary>
private static String SaveFile(String data, String filePath)
{
System.IO.StreamWriter file1 = new System.IO.StreamWriter(filePath, false, Encoding.Default); //文件已覆盖方式添加内容
file1.Write(data); //保存数据到文件
file1.Close(); //关闭文件
file1.Dispose(); //释放对象
return filePath;
}
}
}