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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 判断图片链接是不是存在相关的知识,希望对你有一定的参考价值。

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

LighT_BlaCk 你的方法只能判断域名是否正确 拿我上面的例子只能判断 https://gss0.bdstatic.com/70cFsjip0QIZ8tyhnq/ 后面 /img/logo-zhidao.gif 的正确性就没办法判断咯。

参考技术A /************************
*用第二个方法,获取远程文件的大小
*************************/
//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;
本回答被提问者采纳
参考技术B File.Exist()试试.这个可以判断本地文件是否存在,不知道能否判断远程的.试试吧,没准可以. 参考技术C 你的问题说的不够具体呀,你是要在哪里判断呢?

在C#中如何判断一个文件是不是存在?请各位告知下,越详细越好。

可是现在报错哦!报“在当前上下文中不存在名称“File””。为什么呢? string strFileName = "E:\\TyTest\\TyTest\\Test_08nh\\TyConfiguration.ini";
if (File.Exists(@strFileName)) //判断文件是否存在
MessageBox.Show("配置文件不存在,请先创建配置文件!");

1.引用 System.IO。

2.string dirpath =...//具体自己添。

3.string filepath=...//具体自己添。

4.if (Directory.Exists(path))//判断目录是否存在。

5.if(File.Exist(filepath))//如果是文件的话。

C盘是指电脑硬盘主分区之一,一般用于储存或安装系统使用。针对安装在本地硬盘的单操作系统来说,是默认的本地系统启动硬盘。大部分C盘内文件主要由Documents and Settings、Windows、Program Files等系统文件夹组成,Program Files文件夹一般都是安装软件的默认位置,但是也是病毒的位置,所以要对C盘进行严密保护。

C盘对于本地硬盘的单操作系统来说,是极其重要的,所以平时存放数据尽量不要放C盘。默认在C盘需要移动出来的个人目录是:C:\\Documents and Settings\\你的登录帐号\\ Documents。

参考技术A 添加引用using System.IO;你的strFileName里已经是双斜杠了
,前面的@就不用了。

if(File.Exists(@"文件路径"))

//存在

else

//不存在
追问

可是现在报错哦!报“在当前上下文中不存在名称“File””。为什么呢?
string strFileName = "E:\\TyTest\\TyTest\\Test_08nh\\TyConfiguration.ini";
if (File.Exists(@strFileName)) //判断文件是否存在
MessageBox.Show("配置文件不存在,请先创建配置文件!");

本回答被提问者采纳
参考技术B 不要加@ @会使引号内的\转义符无效 参考技术C 添加命名空间 using System.IO; 参考技术D 条件这么写 if (System.IO.File.Exists(strFileName))

以上是关于C# 判断图片链接是不是存在的主要内容,如果未能解决你的问题,请参考以下文章

js或者jQuery判断链接是不是存在

怎么在不打开网页的情况下判断链接是不是有效?

C#解析Markdown文档,实现替换图片链接操作

JS 把纯字符串,替换成有链接的图片形式,比如/uploads/101207/1.jpg变成图片显示有链接的也就是HTML代码

shell判断文件是不是存在

C#网络爬虫--多线程处理强化版