下载文件错误

时间:2011-06-29 18:39:03

标签: c# c#-4.0

我写了一个程序,使用WebClient.DownloadFile()从网站下载文件。

public static void downWeb()
{
    WebClient myWebClient = new WebClient();
    path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
    if (!Directory.Exists(path))
    {
        Directory.CreateDirectory(path);
    }              
    if (add() == 1)
    {
        Console.WriteLine("Response is " + add());           
        Console.WriteLine("Downloading File = " + dynFileName + "....");
        myWebClient.DownloadFile(fullAddress, (path + dynFileName));
    }
}

public static int add()
{
    string url = fullAddress;

    WebRequest webRequest = WebRequest.Create(url);
    WebResponse webResponse;
    try
    {
        webResponse = webRequest.GetResponse();
    }
    catch
    {
        return 0;
    }
    return 1;
}

downWeb()是要在Main()函数中调用的函数。

add()是一个测试服务器上文件可用性的函数。如果响应为正,则返回值“1”。

fullAddress =文件必须下载的地址。在Main()中出现的循环中调用此函数之前,它每次都在变化。

当我启动我的应用程序时,我要求用户:

1)输入要下载的URL,即www.1234.com \ samplefiles \ pg-1.pdf

2)要下载的页数(通过在循环中更改上面的文件名号,因为服务器上的其余URL是相同的)

现在我的问题是当我下载文件时,第一个文件下载完美,但第二次下载永远不会完成。它说“REQUEST TIMED OUT”,我的申请结束了。

我不知道这里发生了什么。

如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.getresponse.aspx

  

您必须调用Close方法关闭流并释放连接。如果不这样做可能会导致您的应用程序用完连接。

您的问题可能与您没有处置连接的事实有关。你应该确保不要泄漏它们。