1

我遇到了从网站下载文件的问题。

用户可以填写文本框(例如:hello.html),然后单击按钮下载 html 文件。现在我的问题是:即使文件“hello.html”不存在,我的代码也会倾向于下载它。文件夹中会出现“index.html”文件。如何编写“if”语句,以便在文件不存在时告诉代码不要下载?

我的代码:

if (FILE NOT EXIST ON THE WEBSITE)
         {
              //MessageBox.Show("There is no such file on the website. Please check your spelling.");             
         }
         else
         {
              client.DownloadFile("http://example.com/" + txtbox.Text.ToUpper().ToString(),
                                                sourceDir + txtbox.Text.ToUpper().ToString() + ".html");
         }

太感谢了。

4

1 回答 1

1

System.IO.File.Exists(fpath) 在 Chrome 和 Firefox 中返回 false

if (File.Exists(fileLocation))
{ 
    // Download File!
}

该问题特定于上传,但其概念相同。

或者:

直接取自: http: //www.dotnetthoughts.net/how-to-check-remote-file-exists-using-c/

将此方法添加到您的课程中。

private bool RemoteFileExists(string url)
{
    try
    {
        //Creating the HttpWebRequest
        HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
        //Setting the Request method HEAD, you can also use GET too.
        request.Method = "HEAD";
        //Getting the Web Response.
        HttpWebResponse response = request.GetResponse() as HttpWebResponse;
        //Returns TURE if the Status code == 200
        return (response.StatusCode == HttpStatusCode.OK);
    }
    catch
    {
        //Any exception will returns false.
        return false;
    }
}

然后,当您想检查某个文件是否存在于某个 url 时,请使用以下命令:

if (RemoteFileExists("http://blog.stackoverflow.com/wp-content/uploads/stackoverflow-logo-300.png")
{
    //File Exists
}
else
{
    //File does not Exist
}
于 2012-09-20T22:45:54.370 回答