C# 判断图片链接是否存在

C#里怎么去判断一个图片是否存在呢?读取的数据是一个链接.还不详细呀。。比如我有个链接http://img.baidu.com/img/logo-zhidao.gif但我... C#里怎么去判断一个图片是否存在呢? 读取的数据是一个链接.
还不详细呀。。 比如我有个链接 https://gss0.bdstatic.com/70cFsjip0QIZ8tyhnq/img/logo-zhidao.gif 但我不知道这个链接的正确性 如果是个错误的地址我放到页面上就是个X 怎么去判断这图片是否存在呢

LighT_BlaCk 你的方法只能判断域名是否正确 拿我上面的例子只能判断 https://gss0.bdstatic.com/70cFsjip0QIZ8tyhnq/ 后面 /img/logo-zhidao.gif 的正确性就没办法判断咯。
展开
 我来答
百度网友331112cc1
推荐于2016-01-15 · TA获得超过1310个赞
知道小有建树答主
回答量:1070
采纳率:100%
帮助的人:439万
展开全部
/************************
*用第二个方法,获取远程文件的大小
*************************/
//1.判断远程文件是否存在

///fileUrl:远程文件路径,包括IP地址以及详细的路径

private bool RemoteFileExists(string fileUrl)
{
bool result = false;//下载结果

WebResponse response = null;
try
{
WebRequest req = WebRequest.Create(fileUrl);

response = req.GetResponse();

result = response == null ? false : true;

}
catch (Exception ex)
{
result = false;
}
finally
{
if (response != null)
{
response.Close();
}
}

return result;
}

/// 2.通过传入的url获取远程文件数据(二进制流),大家可以通过Response.BinaryWrite()方法将获取的数据流输出

/// </summary>
/// <param name="url">图片的URL</param>
/// <param name="ProxyServer">代理服务器</param>
/// <returns>图片内容</returns>
public byte[] GetFile(string url, string proxyServer)
{
WebResponse rsp = null;
byte[] retBytes = null;

try
{
Uri uri = new Uri(url);
WebRequest req = WebRequest.Create(uri);

rsp = req.GetResponse();
Stream stream = rsp.GetResponseStream();

if (!string.IsNullOrEmpty(proxyServer))
{
req.Proxy = new WebProxy(proxyServer);
}

using (MemoryStream ms = new MemoryStream())
{
int b;
while ((b = stream.ReadByte()) != -1)
{
ms.WriteByte((byte)b);
}
retBytes = ms.ToArray();
}
}
catch (Exception ex)
{
retBytes = null;
}
finally
{
if (rsp != null)
{
rsp.Close();
}

///将本地文件通过httpwebrequest上传到服务器

///localFile:本地文件路径及文件名称,uploadUrl:远程路径(虚拟目录)

///在远程路径中需要把文件保存在的文件夹打开权限设置,否则上传会失败

public bool UploadFileBinary(string localFile, string uploadUrl)
{
bool result = false;
HttpWebRequest req = null;
Stream reqStream = null;
FileStream rdr = null;

try
{

req = (HttpWebRequest)WebRequest.Create(uploadUrl);

req.Method = "PUT";
req.AllowWriteStreamBuffering = true;

// Retrieve request stream
reqStream = req.GetRequestStream();

// Open the local file
rdr = new FileStream(localFile, FileMode.Open);

byte[] inData = new byte[4096];

int bytesRead = rdr.Read(inData, 0, inData.Length);
while (bytesRead > 0)
{
reqStream.Write(inData, 0, bytesRead);
bytesRead = rdr.Read(inData, 0, inData.Length);
}

rdr.Close();
reqStream.Close();

req.GetResponse();

result = true;
}
catch (Exception e)
{
result = false;
}
finally
{
if (reqStream != null)
{
reqStream.Close();
}
if (rdr != null)
{
rdr.Close();
}
}
return result;
}

}
return retBytes;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fz272103148
2010-06-12 · TA获得超过523个赞
知道小有建树答主
回答量:966
采纳率:75%
帮助的人:319万
展开全部
File.Exist()试试.这个可以判断本地文件是否存在,不知道能否判断远程的.试试吧,没准可以.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gyl0519
2010-06-11 · TA获得超过186个赞
知道答主
回答量:76
采纳率:0%
帮助的人:74.8万
展开全部
你的问题说的不够具体呀,你是要在哪里判断呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式