检查Content-Type判断WebClient.DownloadFile下载的文件是否正确



使用System.Net.WebClient.DownloadFile下载文件非常简单方便:

WebClient client = new WebClient();
client.DownloadFile("http://www.mzwu.com/test.mp3", @"G:\test.mp3");

如果该文件不存在,服务器返回一个404错误页面,那么程序也会抛出错误:



但如果该文件不存在,而服务器返回一个200“错误页面”,那么WebClient不会报错,它直接将文本文件保存到本地,我们知道,这是一个错误的文件,怎么解决这个问题呢?这时可以通过检查Content-Type判断下载的文件是否正确来解决这个问题:

WebClient client = new WebClient();
try
{
    client.DownloadFile("http://www.mzwu.com/test.mp3", @"G:\test.mp3");
    if (client.ResponseHeaders["Content-Type"].ToLower() != "audio/mpeg")
    {
        File.Delete(@"G:\test.mp3"); //文件类型不对,删除!
    }
}
catch { }


评论: 0 | 引用: 0 | 查看次数: 531
发表评论
登录后再发表评论!