通过WebClient.DownloadFile获取的文件立即消失

时间:2012-08-17 06:17:10

标签: c# .net

我遇到了一个奇怪的问题,我有一个更新程序的简单服务,它下载文件很好,资源管理器显示它,但只是一两秒后它已经从资源管理器中消失了;下载后运行exe的服务无法启动它,因为它显然不存在。

protected override void OnStart(string[] args)
{
    Update();           
}

public void Update()
{          
    WebClient WebClient = new WebClient();
    WebClient.DownloadFile("http://xxxxxxx/xx/test.exe", @"C:\test.exe");
    Load(); //Just runs the exe file.            
} 

我检查了我的AV,它没有阻止它,测试加载代码没有下载部分,工作正常,问题只发生在我尝试下载时。

2 个答案:

答案 0 :(得分:1)

我发现这是我服务器的问题,文件名应该被更改,但事实并非如此,所以当我调用WebClient.DownloadFile时,它找不到要下载的文件,所以它有删除之前磁盘上的0字节文件,因为没有可下载的内容。

答案 1 :(得分:0)

您向C root写入文件非常有说服力。

您的程序可能没有正确的权限来写入C:而不是获得例外,文件VirtualStore会启动并virtualized您的文件访问权限。

尝试搜索test.exe,您可能会在一些不起眼的位置找到它,例如

C:\Users\User_name\AppData\Local\VirtualStore.