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吗

解决方案 »

  1.   

    File.Exists只支持本地文件系统,不能判断网络地址
      

  2.   

    本帖最后由 net_lover 于 2010-09-25 12:14:29 编辑
      

  3.   

    你判断里面是否有数据即可,为啥要判断if (!File.Exists(url))呢?你在哪看到的这么判断?
      

  4.   

    有个重要问题,就是ds.ReadXml(url),如果正常打开这个问题,则一切正常,如果由于网络或者服务器原因没能打开,立马就报错了。所以应该在读取文件那里判断才行。
      

  5.   

    HttpWebRequest或者WebClinet才可能判断下载的状态。
    使用HttpWebRequest,也不要保存文件的,可以直接读取
      

  6.   

    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);       
      }      
    }