DownloadFileAsync显示为已完成,但指定目录中不存在任何文件

时间:2014-03-10 14:16:33

标签: c# asynchronous download

我正在使用:

WebClient client = new WebClient();
client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);
client.DownloadFileCompleted += new System.ComponentModel.AsyncCompletedEventHandler(client_DownloadFileCompleted);
client.DownloadFileAsync(new Uri(Selected.url), fh.tempFolder);

使用我知道可行的网址下载文件。 fh.tempFolderC:\Users\<username>\AppData\Local\Temp\FileStoreTemp,我甚至更新了清单,将应用程序提升到最高可用用户级别,但文件未下载到该位置。

DownloadFileCompleted事件触发,但是当我调试并单步执行时,似乎下载从开始到完成立即发生,这不应该发生,因为文件大小只有几百MB,所以有些下载它需要时间。

我甚至尝试将下载位置更改为桌面,但它仍然做同样的事情。

2 个答案:

答案 0 :(得分:3)

您必须在方法DownloadFileAsync中指定目标文件夹和文件名。 MSDN link

WebClient client = new WebClient();
string tempFolder = @"C:\temp\";
client.DownloadFileAsync("test.com\test.txt",tempFolder); // won't work
client.DownloadFileAsync("test.com\test.txt",tempFolder + "test.txt"); // works

答案 1 :(得分:0)

您可以尝试DownloadFile

WebClient client = new WebClient();
client.DownloadFile(link, path);
//you will have to specify the filename for path
//for example: myTmpFolder/downloadFile.pdf

未在fh.tmpFolder中指定文件名可能是您未下载文件的原因,但我不是100%肯定,因为我没有使用DownloadFileAsync

<强> - 编辑 -

client.DownloadFileAsync(new Uri(Selected.url), @"C:\Users*****\Desktop\downloadFile.txt"); //specify the filename