以下是代码:
try
{
_wcl.DownloadFile(url, currentFileName);
}
catch (WebException ex)
{
if (ex.Status == WebExceptionStatus.ProtocolError && ex.Response != null)
if ((ex.Response as HttpWebResponse).StatusCode == HttpStatusCode.NotFound)
Console.WriteLine("\r{0} not found. ", currentFileName);
}
下载文件并提示是否发生404错误。
我决定异步下载文件:
try
{
_wcl.DownloadFileAsync(new Uri(url), currentFileName);
}
catch (WebException ex)
{
if (ex.Status == WebExceptionStatus.ProtocolError && ex.Response != null)
if ((ex.Response as HttpWebResponse).StatusCode == HttpStatusCode.NotFound)
Console.WriteLine("\r{0} not found. ", currentFileName);
}
现在,如果服务器返回404错误且WebClient生成一个空文件,则此catch块不会触发。
DownloadFileAsync
打开一个文件以准备写入。完成后无论是否有错误,都会关闭该文件。如果你不想要这个文件,就删除它。 - Jim Mischel