我构建了一个基本的
Windows窗体应用程序我想这样做,以便我的程序在我选择的日期之后删除.
具体来说,当有人点击.exe运行它时,如果它在特定日期之后,则删除.exe.这可能吗?如果是,我该怎么做?
我认为我的代码看起来像这样:
DateTime expiration = new DateTime(2013,10,31) //Oct. 31,2013 If (DateTime.Today > expiration) { //command to self-delete } else { //proceed normally }
解决方法
您必须确保在要删除文件时已关闭应用程序.我会建议类似下面的东西 – 当然你需要做一些修改.
以下示例适用于Windows,需要针对其他操作系统进行修改.
/// <summary> /// Represents the entry point of our application. /// </summary> /// <param name="args">Possibly spcified command line arguments.</param> public static void Main(string[] args) { string batchCommands = string.Empty; string exeFileName = Assembly.GetExecutingAssembly().CodeBase.Replace("file:///",string.Empty).Replace("/","\\"); batchCommands += "@ECHO OFF\n"; // Do not show any output batchCommands += "ping 127.0.0.1 > nul\n"; // Wait approximately 4 seconds (so that the process is already terminated) batchCommands += "echo j | del /F "; // Delete the executeable batchCommands += exeFileName + "\n"; batchCommands += "echo j | del deleteMyProgram.bat"; // Delete this bat file File.WriteAllText("deleteMyProgram.bat",batchCommands); Process.Start("deleteMyProgram.bat"); }