1

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

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

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

问题是几乎每次运行应用程序时,一些下载的文件都损坏了,只下载了 7KB(我认为是元数据),当我尝试打开文件时,Acrobat Reader 给我一条消息:“...it's要么不是受支持的文件类型,要么是因为文件已损坏……”</p>

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

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

这是我的代码:

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...
        }
    }
}

提前致谢。

4

0 回答 0