Как проверить наличие файла на сервере по http? - C#
Формулировка задачи:
В сети существует веб сервер. Мне нужно проверить существование файла по http или как либо ещё.
Файл расположен в папке с разрешениями 755 (chmod755).
Файл открывается в браузере по адресу http://site.ru/files/1.txt (без www т.к. openserver)
Файл без проблем загружается из браузера или моей программы. (DownloadFile)
Этот код работает не верно, файл существует - а результат false
Я могу попытаться загрузить файл и поймать исключение, тем самым определить - что файла нет.
Но это не есть хорошо. Имхо.
Как корректно проверить наличие файла на сервере по http?
PS
Адрес сервера может быть в виде
http://site.ru/files/1.txt или http://10.0.0.1/files/1.txt
if (File.Exists("http://site.ru/files/1.txt")) file_exist = true;
if (!File.Exists("http://site.ru/files/1.txt")) file_exist = false;file_exist = true;
try
{
myWebClient.DownloadFile("http://site.ru/files/1.txt");
}
catch (WebException)
{file_exist = false;}Решение задачи: «Как проверить наличие файла на сервере по http?»
textual
Листинг программы
public static bool FileExists(string url)
{
bool result = false;
var request = WebRequest.Create(url);
request.Timeout = 1200;
request.Method = "HEAD";// Загружаем только заголовки, файл нам не нужен.
HttpWebResponse response = null;
try
{
response = (HttpWebResponse)request.GetResponse();
result = true;
}
catch (WebException webException)
{
}
finally
{
if (response != null)
{
response.Close();
}
}
return result;
}