我试图制作一个"更新程序"对于我的程序,我需要做的一件事是从URL下载exe。我尝试使用WebClient.DownloadFile
(https://msdn.microsoft.com/en-us/library/ez801hhe(v=vs.110).aspx),但我收到了错误:An object reference is required for the nonstatic field, method, or property 'WebClient.DownloadFile(string, string)'
。我认为这是一个我忽略的愚蠢行为,但我很难搞清楚。任何帮助表示赞赏。
代码:
private void Update()
{
string downloadURL = EXE_LOCATION;
string progName = Application.ExecutablePath.Substring(Application.ExecutablePath.LastIndexOf("\\") + 1);
string progLoc = Application.ExecutablePath.Substring(0, Application.ExecutablePath.LastIndexOf("\\") + 1);
if (File.Exists(progLoc + progName))
{
try
{
File.Move(progLoc + progName, progLoc + "Old-version.exe");
}
catch (Exception ex)
{
Console.WriteLine("Problem renaming: " + ex.Message);
}
}
WebClient.DownloadFile(downloadURL, progLoc + progName);
}
答案 0 :(得分:4)
using (var wc = new WebClient())
{
wc.DownloadFile(downloadURL, progLoc + progName);
}
WebClient
只是班级的名称。您需要引用该类的实例。理解类型,实例,引用和变量之间的区别至关重要;除非你很好理解,否则你很难成为一名有效的程序员。
我在这里时:摆脱File.Exists()
检查。你已经抓住了一个例外。如果文件不存在,那就让它处理问题。