最近项目需要把数据库中对应的服务器上的图片全部下载下来做处理。尽管我们可以确认图片基本上都会存在,但是免不了会出现意外情况。这就需要判断一个网络地址的文件是否存在。
我们都知道判断本地文件是否存在直接用File.Exists(url)
即可。
判断网络文件是否存在的方法,其实就是模拟HttpWebRequest
下载请求。你能获取到相应,就表明文件是存在的。
这是我写的一个字符串的扩展方法,判断该字符串对应的网络文件是否存在。
//判断网络文件是否存在
public static bool HttpFileExist(this string fileUrl)
{
try
{
//创建根据网络地址的请求对象
HttpWebRequest httpWebRequest = (HttpWebRequest) WebRequest.CreateDefault(new Uri(fileUrl));
httpWebRequest.Method = "HEAD";
httpWebRequest.Timeout = 1000;
//返回响应状态是否是成功比较的布尔值
using (HttpWebResponse response = (HttpWebResponse)httpWebRequest.GetResponse())
{
return response.StatusCode == HttpStatusCode.OK;
}
}
catch(Exception ex)
{
return false;
}
}