我正在使用:
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.tempFolder
为C:\Users\<username>\AppData\Local\Temp\FileStoreTemp
,我甚至更新了清单,将应用程序提升到最高可用用户级别,但文件未下载到该位置。
DownloadFileCompleted
事件触发,但是当我调试并单步执行时,似乎下载从开始到完成立即发生,这不应该发生,因为文件大小只有几百MB,所以有些下载它需要时间。
我甚至尝试将下载位置更改为桌面,但它仍然做同样的事情。
答案 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