我有一个WPF项目,我需要尽快,检查提供网址的服务器上是否存在文件。
我做了一个使用WebRequest的方法。
public bool URLExists(string url)
{
bool result = true;
WebRequest webRequest = WebRequest.Create(url);
webRequest.Timeout = 1200;
webRequest.Method = "HEAD";
try
{
webRequest.GetResponse();
}
catch (Exception)
{
result = false;
}
return result;
}
虽然这是有效的,但我认为这可以更快地完成。
我已经读过你可以使用套接字,但我没有找到足够的运气来实际理解和尝试,我甚至不知道它是否是更好的选择。
我的问题是:在给定该文件的网址的情况下,检查网络服务器上是否存在文件的最快方法是什么。
我问这个问题的原因是因为Web服务器的文件夹结构如下所示:someserver.com/0/1/2.html,我有三个for循环集像这样:
for (int x = 2; x < 10; x++)
{
for (int y = 0; y < 80; y++)
{
for (int z = 0; z < 100; z++)
{
var url = string.Format("http://www.somserver.com/{0}/{1}/{2}.html", x, y, z);
if (URLExists(url))
{
DownloadFileAsync(new Uri(url), filePath);
}
}
}
}
我知道我想要等待,而不是一次发现成千上万的下载,但这是为了说明我的目的。