WebClient DownloadFile方法下载损坏的PDF文件

时间:2013-06-10 19:57:43

标签: c# webclient downloadfile

在我的Windows应用程序中,我使用WebClient DownloadFile方法从本地网络上的服务器下载多个PDF文件。

每个文件都是在调用其URL时生成的报告。报告的大小不同,需要不同的时间段才能生成。

我的代码循环遍历一个URL列表(大约400个),并为每个URL调用DownloadFile方法,并生成相应的报告并下载到本地计算机。网址肯定是正确的。

问题在于,几乎每次运行应用程序时,一些下载的文件都会损坏,只下载7KB(我认为是元数据),当我尝试打开文件时,Acrobat Reader会给我一条消息: “......它不是受支持的文件类型,或者因为文件已损坏......”

并不总是相同的文件被损坏,当我重新运行应用程序时,这些文件通常会成功,而其他一些文件可能会失败......它似乎是随机的,我无法找到标准。

注1:在完全下载优先级之前,我不希望文件开始下载,这就是我不使用异步方法的原因。 注2:所有文件都是Oracle报告,通过查询数据库生成。 注3:如果文件损坏,则不会引发EXCEPTION。

这是我的代码:

using ( WebClient client  = new WebClient() )
{
    for(int i=0; i< URL_List.Length; i++)
    {
        try
        {
        client.DownloadFile( URL_List[i] , myLocalPath+fileName+".pdf" );
        }
        catch(Exception x)
        {
         // write exception message to error log...
        }
    }
}

提前致谢。

0 个答案:

没有答案