WebClient问题 - 为什么以下代码不起作用?

时间:2010-12-03 20:20:33

标签: c#-4.0

为什么这段代码不起作用?

WebClient webClient = new WebClient();
webClient.Credentials = CredentialCache.DefaultCredentials;

webClient.DownloadFile(@"http://biblioteca.uqroo.mx/hemeroteca/tesol_quartely/1967_2002_fulltext/", "Vol_01_1.pdf");

System.Diagnostics.Process.Start("Vol_01_1.pdf");
Console.WriteLine("Worked!");

它开始下载,但是当我尝试打开文件时,它已损坏并且尺寸很小。 有什么建议吗?

DA

2 个答案:

答案 0 :(得分:1)

您正在下载目录列表。在浏览器中关注您自己的链接 - 它不会下载PDF,只会下载目录。只需将文件名放在URL中:

WebClient webClient = new WebClient();
webClient.Credentials = CredentialCache.DefaultCredentials;

webClient.DownloadFile("http://biblioteca.uqroo.mx/hemeroteca/" + 
                       "tesol_quartely/1967_2002_fulltext/Vol_01_1.pdf",
                       "Vol_01_1.pdf");

System.Diagnostics.Process.Start("Vol_01_1.pdf");
Console.WriteLine("Worked!");

答案 1 :(得分:0)

也使用http://msdn.microsoft.com/en-us/library/system.net.webclient.downloadfileasync.aspx。该文件需要时间下载,因此执行时

System.Diagnostics.Process.Start("Vol_01_1.pdf")

该文件可能尚未下载。