那么如何更新旧文件呢?我正在制作一个程序,一旦它被更新以删除旧版本。我没有安装程序,所以我不知道文件的位置。如何在更新后删除它并且我不知道用户是否放置了我需要删除的文件?我已经搜索过,所有显示出来的东西都需要有路径。
答案 0 :(得分:0)
您可以按照建议使用ClickOnce,但如果您真的不想使用任何“外部”工具......这可能会起到作用:
对于我的编码很抱歉,我在我的一些项目中也使用了这个snipet,并且效果非常好。
这用于正在更新的应用程序......
fileupdatepath = "The path to your file which is the updated one you downloaded."
Dim pi As New ProcessStartInfo("cmd.exe", String.Format("/c ping 1.1.1.1 -n 1 -w 15000 >NUL & move /y {0} {1} & start {1}", fileupdatedpath, Application.ExecutablePath)) With {.CreateNoWindow = True, .UseShellExecute = False}
Process.Start(pi)
Application.Exit()
等待15秒以确保当前应用程序在启动新应用程序之前正确关闭,如果需要保留相同的名称和应用程序路径,则使用此选项,因为 move 命令正在用于替换任何具有相同名称的文件。如果没有,您可以启动新文件,关闭当前文件,并删除当前的应用程序文件......
注意:'如果应用程序路径没有'#'或''
等特殊字符,则此方法有效答案 1 :(得分:0)
在上面的答案中,您可以在fileupdatepath和application.executablepath周围加上引号,即使文件位置中有空格,代码也能正常工作。最终代码如下所示:
fileupdatepath = "The path to your file which is the updated one you downloaded."
Dim pi As New ProcessStartInfo("cmd.exe", String.Format("/c ping 1.1.1.1 -n 1 -w 15000 >NUL & move /y {0} {1} & start {1}", """" & fileupdatedpath& """", """" & Application.ExecutablePath & """")) With {.CreateNoWindow = True, .UseShellExecute = False}
Process.Start(pi)
Application.Exit()