在我的 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...
}
}
}
提前致谢。