如何判断打开文件失败

phuai007 2010-09-25 12:09:33

String url="http://www.semiji.com/xml/filename.xml";
DataSet ds = new DataSet();
ds.ReadXml(url);
if (!File.Exists(url))//这里怎么判断是否正常读取了这个文件
{
foreach (DataRow row in ds.Tables[0].Rows)
{
string s = row["name"].ToString();
//MessageBox.Show(s);
}
}
MessageBox.Show("连接失败,请检查网络或稍后再试!","连接失败");

}



File.Exists是判断文件是否存在,这里是判断是否正常打开,用哪个属性,是OpenRead吗
...全文
95 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
孟子E章 2010-09-25
  • 打赏
  • 举报
回复
HttpWebRequest或者WebClinet才可能判断下载的状态。
使用HttpWebRequest,也不要保存文件的,可以直接读取

孟子E章 2010-09-25
  • 打赏
  • 举报
回复
你可以使用
try
catch
phuai007 2010-09-25
  • 打赏
  • 举报
回复
有个重要问题,就是ds.ReadXml(url),如果正常打开这个问题,则一切正常,如果由于网络或者服务器原因没能打开,立马就报错了。

所以应该在读取文件那里判断才行。
孟子E章 2010-09-25
  • 打赏
  • 举报
回复
你判断里面是否有数据即可,为啥要判断if (!File.Exists(url))呢?你在哪看到的这么判断?
phuai007 2010-09-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 net_lover 的回复:]
你可以判断ds.Tables.Count
你可以使用 WebClinet.DownloadFile下载文件或者使用HttpWebRequest下载到本地
[/Quote]
这个文档很小,不想下回来,直接打开速度要快一些
孟子E章 2010-09-25
  • 打赏
  • 举报
回复
你可以判断ds.Tables.Count
你可以使用 WebClinet.DownloadFile下载文件或者使用HttpWebRequest下载到本地
孟子E章 2010-09-25
  • 打赏
  • 举报
回复
File.Exists只支持本地文件系统,不能判断网络地址
phuai007 2010-09-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 net_lover 的回复:]
你可以使用
try
catch
[/Quote]

呵呵,我是半道出家的,不知道这个,用了果然好使,问题解决了,谢谢。
孟子E章 2010-09-25
  • 打赏
  • 举报
回复
System.Net.HttpWebRequest req = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create("http://www.semiji.com/xml/filename.xml");
System.Net.HttpWebResponse res = (System.Net.HttpWebResponse)req.GetResponse();
if (res.StatusCode == System.Net.HttpStatusCode.OK)
{
System.IO.Stream s = res.GetResponseStream();
System.Data.DataSet ds = new System.Data.DataSet();
ds.ReadXml(s);
foreach (System.Data.DataRow row in ds.Tables[0].Rows)
{
string xs = row[1].ToString();
MessageBox.Show(xs);
}
}

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧