。net判断远程文件是否存在
以下代码能判断文件是否存在,但存在一个问题那就是当网速慢的时候就会出现判断不准确,请各位高手帮忙看一下
private bool GetServerFileExists(string URL)
    {
        try
        {
            System.Net.WebRequest s = System.Net.WebRequest.Create(URL);
            s.Timeout = 16000; 
            System.Net.WebResponse a = s.GetResponse();
            a.Close();
            s.Abort();
            return true;
        }
        catch
        {
            return false;
        }
    }

解决方案 »

  1.   

    如果是WebRequest,应该能通过异常的类型来判断页面是否存在。try之后把异常拿住
    catch (WebException webExcp) 
    {
    去判断是什么异常。
    }Each WebException includes a Status property that contains a value from the WebExceptionStatus enumeration. You can examine the Status property to determine the error that occurred and take the proper steps to resolve the error.
      

  2.   

    同1楼的,看看exception的代码是多少,如果是404则文件不存在
      

  3.   

    另外可以把timeout设置长一点,16000相对来说短了点
      

  4.   

    用try catch捕获下吧,如果执行了catch就表明不存在吧
      

  5.   

    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();
                }
            }HttpWebRequest   req   =   (HttpWebRequest)WebRequest.Create("");       
    req.AllowAutoRedirect   =   false;    
    HttpWebResponse   res   =   (HttpWebResponse)req.GetResponse();    
    if(res.StatusCode   ==   HttpStatusCode.OK)    
    {  }